1 package net.pterodactylus.sone.data;
3 import static org.hamcrest.MatcherAssert.assertThat;
4 import static org.hamcrest.Matchers.equalTo;
5 import static org.hamcrest.Matchers.is;
6 import static org.hamcrest.Matchers.not;
11 * Unit test for {@link Id}.
13 * @author <a href="mailto:bombe@pterodactylus.net">David ‘Bombe’ Roden</a>
17 private static final String SONE_ID = "~Yp72VX0c6FLDvgIzip5wIvaGIIrjKcKvnX~pTaMKXs";
18 private static final String ELEMENT_ID = "88CC70AE-E853-4EEE-B245-E4C55F40DDDF";
19 private static final String EXPECTED_ID = "139a629a13f6a2c4191fb19ecead7e57335ea3deb2a971b88d5e004378c4daad";
21 private final Id completeId = Id.from(SONE_ID, ELEMENT_ID);
22 private final Id parsedId = Id.from(EXPECTED_ID);
25 public void idBuilderBuildsCorrectIds() {
26 assertThat(completeId.getSoneId().get(), is(SONE_ID));
27 assertThat(completeId.getElementId().get(), is(ELEMENT_ID));
28 assertThat(completeId.getExternal(), is(EXPECTED_ID));
32 public void parsedIdIsBuiltCorrectly() {
33 assertThat(parsedId.getSoneId().isPresent(), is(false));
34 assertThat(parsedId.getElementId().isPresent(), is(false));
35 assertThat(parsedId.getExternal(), is(EXPECTED_ID));
39 public void twoIdsAreNotEqualIfExternalIdIsDifferent() {
40 Id id2 = Id.from(EXPECTED_ID + "1");
41 assertThat(id2, not(equalTo(parsedId)));
42 assertThat(parsedId, not(equalTo(id2)));
46 public void twoIdsAreEqualIfSoneAndElementIdIsEqual() {
47 Id id2 = Id.from(SONE_ID, ELEMENT_ID);
48 assertThat(id2, equalTo(completeId));
49 assertThat(completeId, equalTo(id2));
53 public void twoIdsAreEqualIfExternalIdIsEqual() {
54 Id id2 = Id.from(EXPECTED_ID);
55 assertThat(id2, equalTo(parsedId));
56 assertThat(parsedId, equalTo(id2));
60 public void twoIdsHaveTheSameHashCodeIfTheyAreEqual() {
61 Id id2 = Id.from(EXPECTED_ID);
62 assertThat(id2.hashCode(), equalTo(completeId.hashCode()));
66 public void nullIsNotEqualToId() {
67 assertThat(completeId, not(equalTo(null)));
71 public void objectOfDifferentClassIsNotEqualToId() {
72 assertThat(completeId, not(equalTo(new Object())));
76 public void stringRepresentationMatchesTheExternalId() {
77 assertThat(completeId.toString(), is(EXPECTED_ID));
80 @Test(expected = NullPointerException.class)
81 public void canNotParseNullAsExternalId() {
85 @Test(expected = NullPointerException.class)
86 public void canNotParseNullAsSoneId() {
87 Id.from(null, ELEMENT_ID);
90 @Test(expected = NullPointerException.class)
91 public void canNotParseNullAsElementId() {
92 Id.from(SONE_ID, null);