private static final String SONE_ID = "~Yp72VX0c6FLDvgIzip5wIvaGIIrjKcKvnX~pTaMKXs";
private static final String ELEMENT_ID = "88CC70AE-E853-4EEE-B245-E4C55F40DDDF";
private static final String EXPECTED_ID = "139a629a13f6a2c4191fb19ecead7e57335ea3deb2a971b88d5e004378c4daad";
- private final Id id = Id.from(SONE_ID, ELEMENT_ID);
+
+ private final Id completeId = Id.from(SONE_ID, ELEMENT_ID);
+ private final Id parsedId = Id.from(EXPECTED_ID);
@Test
public void idBuilderBuildsCorrectIds() {
- assertThat(id.getSoneId(), is(SONE_ID));
- assertThat(id.getElementId(), is(ELEMENT_ID));
- assertThat(id.getExternal(), is(EXPECTED_ID));
+ assertThat(completeId.getSoneId().get(), is(SONE_ID));
+ assertThat(completeId.getElementId().get(), is(ELEMENT_ID));
+ assertThat(completeId.getExternal(), is(EXPECTED_ID));
}
@Test
- public void twoIdsAreNotEqualIfSoneIdIsDifferent() {
- Id id2 = Id.from(SONE_ID + "1", ELEMENT_ID);
- assertThat(id2, not(equalTo(id)));
- assertThat(id, not(equalTo(id2)));
+ public void parsedIdIsBuiltCorrectly() {
+ assertThat(parsedId.getSoneId().isPresent(), is(false));
+ assertThat(parsedId.getElementId().isPresent(), is(false));
+ assertThat(parsedId.getExternal(), is(EXPECTED_ID));
}
@Test
- public void twoIdsAreNotEqualIfElementIdIsDifferent() {
- Id id2 = Id.from(SONE_ID, ELEMENT_ID + "1");
- assertThat(id2, not(equalTo(id)));
- assertThat(id, not(equalTo(id2)));
+ public void twoIdsAreNotEqualIfExternalIdIsDifferent() {
+ Id id2 = Id.from(EXPECTED_ID + "1");
+ assertThat(id2, not(equalTo(parsedId)));
+ assertThat(parsedId, not(equalTo(id2)));
}
@Test
public void twoIdsAreEqualIfSoneAndElementIdIsEqual() {
Id id2 = Id.from(SONE_ID, ELEMENT_ID);
- assertThat(id2, equalTo(id));
- assertThat(id, equalTo(id2));
+ assertThat(id2, equalTo(completeId));
+ assertThat(completeId, equalTo(id2));
+ }
+
+ @Test
+ public void twoIdsAreEqualIfExternalIdIsEqual() {
+ Id id2 = Id.from(EXPECTED_ID);
+ assertThat(id2, equalTo(parsedId));
+ assertThat(parsedId, equalTo(id2));
}
@Test
public void twoIdsHaveTheSameHashCodeIfTheyAreEqual() {
- Id id2 = Id.from(SONE_ID, ELEMENT_ID);
- assertThat(id2.hashCode(), equalTo(id.hashCode()));
+ Id id2 = Id.from(EXPECTED_ID);
+ assertThat(id2.hashCode(), equalTo(completeId.hashCode()));
}
@Test
public void nullIsNotEqualToId() {
- assertThat(id, not(equalTo(null)));
+ assertThat(completeId, not(equalTo(null)));
}
@Test
public void objectOfDifferentClassIsNotEqualToId() {
- assertThat(id, not(equalTo(new Object())));
+ assertThat(completeId, not(equalTo(new Object())));
}
@Test
public void stringRepresentationMatchesTheExternalId() {
- assertThat(id.toString(), is(EXPECTED_ID));
+ assertThat(completeId.toString(), is(EXPECTED_ID));
+ }
+
+ @Test(expected = NullPointerException.class)
+ public void canNotParseNullAsExternalId() {
+ Id.from(null);
+ }
+
+ @Test(expected = NullPointerException.class)
+ public void canNotParseNullAsSoneId() {
+ Id.from(null, ELEMENT_ID);
+ }
+
+ @Test(expected = NullPointerException.class)
+ public void canNotParseNullAsElementId() {
+ Id.from(SONE_ID, null);
}
}