X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Ftest%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fcore%2FSoneParserTest.java;h=87f66009b7d50db6b0aac5c908406c6ad12a574e;hb=1c10b9c10e4888d4b29767ae28afaf679e6384bf;hp=b0d553d56e7bf90949449ade2fe1fcc167ddf8dc;hpb=0c21488eb2f8c3131366e6f0d2f03012d5902426;p=Sone.git diff --git a/src/test/java/net/pterodactylus/sone/core/SoneParserTest.java b/src/test/java/net/pterodactylus/sone/core/SoneParserTest.java index b0d553d..87f6600 100644 --- a/src/test/java/net/pterodactylus/sone/core/SoneParserTest.java +++ b/src/test/java/net/pterodactylus/sone/core/SoneParserTest.java @@ -3,10 +3,12 @@ package net.pterodactylus.sone.core; import static com.google.common.base.Objects.equal; import static java.lang.String.format; import static java.util.logging.Level.OFF; -import static org.hamcrest.CoreMatchers.is; -import static org.hamcrest.CoreMatchers.notNullValue; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.containsInAnyOrder; +import static org.hamcrest.Matchers.empty; +import static org.hamcrest.Matchers.is; +import static org.hamcrest.Matchers.notNullValue; +import static org.hamcrest.Matchers.nullValue; import static org.hamcrest.collection.IsIterableContainingInOrder.contains; import static org.mockito.Matchers.anyString; import static org.mockito.Mockito.mock; @@ -15,8 +17,10 @@ import static org.mockito.Mockito.when; import java.io.InputStream; import java.util.logging.Logger; +import net.pterodactylus.sone.core.SoneParser.DuplicateField; import net.pterodactylus.sone.core.SoneParser.InvalidProtocolVersion; import net.pterodactylus.sone.core.SoneParser.InvalidXml; +import net.pterodactylus.sone.core.SoneParser.MalformedTime; import net.pterodactylus.sone.core.SoneParser.MalformedXml; import net.pterodactylus.sone.data.Client; import net.pterodactylus.sone.data.Image; @@ -91,6 +95,84 @@ public class SoneParserTest { assertThat(sone.getClient(), is(originalSone.getClient())); } + @Test(expected = MalformedXml.class) + public void verifyThatAMissingProfileCausesAnError() { + soneParser.parseSone(database, originalSone, getXml("missing-profile")); + } + + @Test(expected = MalformedXml.class) + public void verifyThatInvalidFieldsCauseAnError() { + soneParser.parseSone(database, originalSone, getXml("invalid-field")); + } + + @Test(expected = DuplicateField.class) + public void verifyThatDuplicateFieldsCauseAnError() { + soneParser.parseSone(database, originalSone, getXml("duplicate-field")); + } + + @Test + public void verifyThatMissingPostsDoNotCauseAnError() { + soneParser.parseSone(database, originalSone, getXml("missing-posts")); + } + + @Test(expected = MalformedXml.class) + public void verifyThatInvalidPostsCauseAnError() { + soneParser.parseSone(database, originalSone, getXml("invalid-posts")); + } + + @Test(expected = MalformedTime.class) + public void verifyThatAMalformedTimeCausesAnError() { + soneParser.parseSone(database, originalSone, getXml("invalid-post-time")); + } + + @Test + public void verifyThatMissingRepliesDoNotCauseAnError() { + soneParser.parseSone(database, originalSone, getXml("missing-replies")); + } + + @Test(expected = MalformedXml.class) + public void verifyThatInvalidRepliesCauseAnError() { + soneParser.parseSone(database, originalSone, getXml("invalid-replies")); + } + + @Test(expected = MalformedTime.class) + public void verifyThatAMalformedReplyTimeCausesAnError() { + soneParser.parseSone(database, originalSone, getXml("invalid-reply-time")); + } + + @Test + public void verifyThatAMissingPostLikesSectionDoesNotCauseAnError() { + soneParser.parseSone(database, originalSone, getXml("missing-post-likes")); + } + + @Test + public void verifyThatAMissingReplyLikesSectionDoesNotCauseAnError() { + soneParser.parseSone(database, originalSone, getXml("missing-reply-likes")); + } + + @Test + public void verifyThatMissingAlbumsSectionDoNotCauseAnError() { + soneParser.parseSone(database, originalSone, getXml("missing-albums")); + } + + @Test(expected = MalformedXml.class) + public void verifyThatAnInvalidAlbumCausesAnError() { + soneParser.parseSone(database, originalSone, getXml("invalid-album")); + } + + @Test + public void verifyThatAnEmptyProfileIsParsedWithoutError() { + Sone sone = soneParser.parseSone(database, originalSone, getXml("empty-profile")); + assertThat(sone.getProfile().getFirstName(), nullValue()); + assertThat(sone.getProfile().getMiddleName(), nullValue()); + assertThat(sone.getProfile().getLastName(), nullValue()); + assertThat(sone.getProfile().getBirthYear(), nullValue()); + assertThat(sone.getProfile().getBirthMonth(), nullValue()); + assertThat(sone.getProfile().getBirthDay(), nullValue()); + assertThat(sone.getProfile().getAvatar(), nullValue()); + assertThat(sone.getProfile().getFields(), empty()); + } + @Test public void verifyThatTheCreatedSoneMeetsAllExpectations() { Sone sone = soneParser.parseSone(database, originalSone, getXml("complete"));