X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;ds=sidebyside;f=src%2Ftest%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fcore%2FSoneParserTest.java;h=16fa99ef5eee11b17618757c92ca2d9fb359fa2f;hb=d879dd0663b2e8f508b300c2d26e5413bd0c9253;hp=726354b10004b156bea6884ac71b44dce7263edc;hpb=c866996d4c72eb57ee4e8b7d1e439edc2468719b;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 726354b..16fa99e 100644 --- a/src/test/java/net/pterodactylus/sone/core/SoneParserTest.java +++ b/src/test/java/net/pterodactylus/sone/core/SoneParserTest.java @@ -3,20 +3,23 @@ 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.CoreMatchers.nullValue; 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; import static org.mockito.Mockito.when; import java.io.InputStream; -import java.io.UnsupportedEncodingException; import java.util.logging.Logger; +import net.pterodactylus.sone.core.SoneParser.InvalidProtocolVersion; +import net.pterodactylus.sone.core.SoneParser.InvalidXml; +import net.pterodactylus.sone.core.SoneParser.MalformedXml; import net.pterodactylus.sone.data.Client; import net.pterodactylus.sone.data.Image; import net.pterodactylus.sone.data.Post; @@ -54,22 +57,22 @@ public class SoneParserTest { when(core.getImage(anyString())).thenReturn(image); } - @Test + @Test(expected = InvalidXml.class) public void verifyThatAnInvalidXmlDocumentIsNotParsed() { soneParser.parseSone(database, originalSone, getXml("invalid-xml")); } - @Test + @Test(expected = InvalidProtocolVersion.class) public void verifyThatANegativeProtocolVersionCausesAnError() { soneParser.parseSone(database, originalSone, getXml("negative-protocol-version")); } - @Test + @Test(expected = InvalidProtocolVersion.class) public void verifyThatATooLargeProtocolVersionCausesAnError() { soneParser.parseSone(database, originalSone, getXml("too-large-protocol-version")); } - @Test + @Test(expected = MalformedXml.class) public void verifyThatAMissingTimeCausesAnError() { soneParser.parseSone(database, originalSone, getXml("missing-time")); } @@ -90,6 +93,24 @@ public class SoneParserTest { assertThat(sone.getClient(), is(originalSone.getClient())); } + @Test(expected = MalformedXml.class) + public void verifyThatAMissingProfileCausesAnError() { + soneParser.parseSone(database, originalSone, getXml("missing-profile")); + } + + @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"));