X-Git-Url: https://git.pterodactylus.net/?p=Sone.git;a=blobdiff_plain;f=src%2Ftest%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fdata%2FIdTest.java;fp=src%2Ftest%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fdata%2FIdTest.java;h=082f65b9de588c25a75e34d55f43a5cba59a7c7d;hp=0000000000000000000000000000000000000000;hb=25eccb52bf670342982c1f87c85b191cf4ae56cd;hpb=d945b492b95c370539a0b6d64c37e4b93b5be190 diff --git a/src/test/java/net/pterodactylus/sone/data/IdTest.java b/src/test/java/net/pterodactylus/sone/data/IdTest.java new file mode 100644 index 0000000..082f65b --- /dev/null +++ b/src/test/java/net/pterodactylus/sone/data/IdTest.java @@ -0,0 +1,71 @@ +package net.pterodactylus.sone.data; + +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.equalTo; +import static org.hamcrest.Matchers.is; +import static org.hamcrest.Matchers.not; + +import org.junit.Test; + +/** + * Unit test for {@link Id}. + * + * @author David ‘Bombe’ Roden + */ +public class IdTest { + + 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); + + @Test + public void idBuilderBuildsCorrectIds() { + assertThat(id.getSoneId(), is(SONE_ID)); + assertThat(id.getElementId(), is(ELEMENT_ID)); + assertThat(id.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))); + } + + @Test + public void twoIdsAreNotEqualIfElementIdIsDifferent() { + Id id2 = Id.from(SONE_ID, ELEMENT_ID + "1"); + assertThat(id2, not(equalTo(id))); + assertThat(id, not(equalTo(id2))); + } + + @Test + public void twoIdsAreEqualIfSoneAndElementIdIsEqual() { + Id id2 = Id.from(SONE_ID, ELEMENT_ID); + assertThat(id2, equalTo(id)); + assertThat(id, equalTo(id2)); + } + + @Test + public void twoIdsHaveTheSameHashCodeIfTheyAreEqual() { + Id id2 = Id.from(SONE_ID, ELEMENT_ID); + assertThat(id2.hashCode(), equalTo(id.hashCode())); + } + + @Test + public void nullIsNotEqualToId() { + assertThat(id, not(equalTo(null))); + } + + @Test + public void objectOfDifferentClassIsNotEqualToId() { + assertThat(id, not(equalTo(new Object()))); + } + + @Test + public void stringRepresentationMatchesTheExternalId() { + assertThat(id.toString(), is(EXPECTED_ID)); + } + +}