X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Ftest%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Ftext%2FSoneTextParserTest.java;h=8dc1d4a07e4ebb39c38b42c24e56e326a74b9318;hb=038ea09c7e79c591cd6df49e5baf4757e364f2b9;hp=25ec62a2c5f4ef8a0f8c30dcf6df3731304d448f;hpb=52c5e4136f8251b504941d662dba7b2ffc33863d;p=Sone.git diff --git a/src/test/java/net/pterodactylus/sone/text/SoneTextParserTest.java b/src/test/java/net/pterodactylus/sone/text/SoneTextParserTest.java index 25ec62a..8dc1d4a 100644 --- a/src/test/java/net/pterodactylus/sone/text/SoneTextParserTest.java +++ b/src/test/java/net/pterodactylus/sone/text/SoneTextParserTest.java @@ -29,9 +29,7 @@ import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.HashMap; -import java.util.HashSet; import java.util.Map; -import java.util.Set; import net.pterodactylus.sone.data.Post; import net.pterodactylus.sone.data.Sone; @@ -42,8 +40,6 @@ import net.pterodactylus.sone.database.SoneProvider; import com.google.common.base.Function; import com.google.common.base.Optional; import org.junit.Test; -import org.mockito.Mockito; -import org.mockito.stubbing.OngoingStubbing; /** * JUnit test case for {@link SoneTextParser}. @@ -145,9 +141,16 @@ public class SoneTextParserTest { @Test public void linksToPostAreParsedCorrectly() throws IOException { - postProvider.addValidPostId("foo", "Post about foo..."); + postProvider.addValidPostId("foo", "internal", "Post about foo..."); Iterable parts = soneTextParser.parse(null, new StringReader("This post://foo is awesome.")); - assertThat(convertText(parts, PlainTextPart.class, PostPart.class), is("This [post|foo|Post about foo...] is awesome.")); + assertThat(convertText(parts, PlainTextPart.class, PostPart.class), is("This [post|new|foo|Post about foo...] is awesome.")); + } + + @Test + public void linksToPostsWithOldIdsAreParsedCorrectly() throws IOException { + postProvider.addValidPostId("foo", "internal", "Post about foo..."); + Iterable parts = soneTextParser.parse(null, new StringReader("This post://internal is awesome.")); + assertThat(convertText(parts, PlainTextPart.class, PostPart.class), is("This [post|old|foo|Post about foo...] is awesome.")); } // @@ -203,7 +206,13 @@ public class SoneTextParserTest { text.append("[Sone|").append(sonePart.getSone().getId()).append(']'); } else if (part instanceof PostPart) { PostPart postPart = (PostPart) part; - text.append("[post|").append(postPart.getPost().getId()).append('|').append(postPart.getPost().getText()).append(']'); + text.append("[post|") + .append(postPart.usesDeprecatedLink() ? "old" : "new") + .append('|') + .append(postPart.getPost().getId()) + .append('|') + .append(postPart.getPost().getText()) + .append(']'); } } return text.toString(); @@ -262,10 +271,14 @@ public class SoneTextParserTest { private static class TestPostProvider implements PostProvider { - private final Map posts = new HashMap(); + private final Map postTexts = new HashMap(); + private final Map postInternalIds = new HashMap(); + private final Map internalIdPosts = new HashMap(); - private void addValidPostId(String validPostId, String text) { - posts.put(validPostId, text); + private void addValidPostId(String validPostId, String internalId, String text) { + postTexts.put(validPostId, text); + postInternalIds.put(validPostId, internalId); + internalIdPosts.put(internalId, validPostId); } @Override @@ -280,10 +293,17 @@ public class SoneTextParserTest { @Override public Optional getPost(String postId) { - if (posts.containsKey(postId)) { + if (postTexts.containsKey(postId)) { Post post = mock(Post.class); when(post.getId()).thenReturn(postId); - when(post.getText()).thenReturn(posts.get(postId)); + when(post.getInternalId()).thenReturn(postInternalIds.get(postId)); + when(post.getText()).thenReturn(postTexts.get(postId)); + return Optional.of(post); + } else if (internalIdPosts.containsKey(postId)) { + Post post = mock(Post.class); + when(post.getId()).thenReturn(internalIdPosts.get(postId)); + when(post.getInternalId()).thenReturn(postId); + when(post.getText()).thenReturn(postTexts.get(internalIdPosts.get(postId))); return Optional.of(post); } return Optional.absent();