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";
20 private final Id id = Id.from(SONE_ID, ELEMENT_ID);
23 public void idBuilderBuildsCorrectIds() {
24 assertThat(id.getSoneId(), is(SONE_ID));
25 assertThat(id.getElementId(), is(ELEMENT_ID));
26 assertThat(id.getExternal(), is(EXPECTED_ID));
30 public void twoIdsAreNotEqualIfSoneIdIsDifferent() {
31 Id id2 = Id.from(SONE_ID + "1", ELEMENT_ID);
32 assertThat(id2, not(equalTo(id)));
33 assertThat(id, not(equalTo(id2)));
37 public void twoIdsAreNotEqualIfElementIdIsDifferent() {
38 Id id2 = Id.from(SONE_ID, ELEMENT_ID + "1");
39 assertThat(id2, not(equalTo(id)));
40 assertThat(id, not(equalTo(id2)));
44 public void twoIdsAreEqualIfSoneAndElementIdIsEqual() {
45 Id id2 = Id.from(SONE_ID, ELEMENT_ID);
46 assertThat(id2, equalTo(id));
47 assertThat(id, equalTo(id2));
51 public void twoIdsHaveTheSameHashCodeIfTheyAreEqual() {
52 Id id2 = Id.from(SONE_ID, ELEMENT_ID);
53 assertThat(id2.hashCode(), equalTo(id.hashCode()));
57 public void nullIsNotEqualToId() {
58 assertThat(id, not(equalTo(null)));
62 public void objectOfDifferentClassIsNotEqualToId() {
63 assertThat(id, not(equalTo(new Object())));
67 public void stringRepresentationMatchesTheExternalId() {
68 assertThat(id.toString(), is(EXPECTED_ID));