X-Git-Url: https://git.pterodactylus.net/?p=Sone.git;a=blobdiff_plain;f=src%2Ftest%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2FMatchers.java;h=823cdf9e4e06464c81512ef8d0e8d6ca9efa8237;hp=c73866eb6be239cdcd52b52ad8f06b61ee07c777;hb=7b55e0be6a3283e43a9bbab98f82aebdd948eb33;hpb=ffb2ea1773cf7e3d1b7fc41ab0e9c3c1eed514e0 diff --git a/src/test/java/net/pterodactylus/sone/Matchers.java b/src/test/java/net/pterodactylus/sone/Matchers.java index c73866e..823cdf9 100644 --- a/src/test/java/net/pterodactylus/sone/Matchers.java +++ b/src/test/java/net/pterodactylus/sone/Matchers.java @@ -1,5 +1,5 @@ /* - * Sone - Matchers.java - Copyright © 2013 David Roden + * Sone - Matchers.java - Copyright © 2013–2016 David Roden * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -23,6 +23,7 @@ import java.io.IOException; import java.io.InputStream; import net.pterodactylus.sone.data.Album; +import net.pterodactylus.sone.data.Image; import net.pterodactylus.sone.data.Post; import net.pterodactylus.sone.data.PostReply; @@ -97,6 +98,10 @@ public class Matchers { return new PostMatcher(postId, time, text, recipient); } + public static Matcher isPostWithId(String postId) { + return new PostIdMatcher(postId); + } + public static Matcher isPostReply(String postReplyId, String postId, long time, String text) { return new PostReplyMatcher(postReplyId, postId, time, text); @@ -104,8 +109,7 @@ public class Matchers { public static Matcher isAlbum(final String albumId, final String parentAlbumId, - final String title, final String albumDescription, - final String imageId) { + final String title, final String albumDescription) { return new TypeSafeDiagnosingMatcher() { @Override protected boolean matchesSafely(Album album, @@ -141,22 +145,6 @@ public class Matchers { .appendValue(album.getDescription()); return false; } - if (imageId == null) { - if (album.getAlbumImage() != null) { - mismatchDescription.appendText("has album image"); - return false; - } - } else { - if (album.getAlbumImage() == null) { - mismatchDescription.appendText("has no album image"); - return false; - } - if (!album.getAlbumImage().getId().equals(imageId)) { - mismatchDescription.appendText("has album image ") - .appendValue(album.getAlbumImage().getId()); - return false; - } - } return true; } @@ -172,12 +160,68 @@ public class Matchers { description.appendText(", has title ").appendValue(title); description.appendText(", has description ") .appendValue(albumDescription); - if (imageId == null) { - description.appendText(", has no album image"); - } else { - description.appendText(", has album image ") - .appendValue(imageId); + } + }; + } + + public static Matcher isImage(final String id, + final long creationTime, + final String key, final String title, + final String imageDescription, + final int width, final int height) { + return new TypeSafeDiagnosingMatcher() { + @Override + protected boolean matchesSafely(Image image, + Description mismatchDescription) { + if (!image.getId().equals(id)) { + mismatchDescription.appendText("ID is ") + .appendValue(image.getId()); + return false; + } + if (image.getCreationTime() != creationTime) { + mismatchDescription.appendText("created at @") + .appendValue(image.getCreationTime()); + return false; } + if (!image.getKey().equals(key)) { + mismatchDescription.appendText("key is ") + .appendValue(image.getKey()); + return false; + } + if (!image.getTitle().equals(title)) { + mismatchDescription.appendText("title is ") + .appendValue(image.getTitle()); + return false; + } + if (!image.getDescription().equals(imageDescription)) { + mismatchDescription.appendText("description is ") + .appendValue(image.getDescription()); + return false; + } + if (image.getWidth() != width) { + mismatchDescription.appendText("width is ") + .appendValue(image.getWidth()); + return false; + } + if (image.getHeight() != height) { + mismatchDescription.appendText("height is ") + .appendValue(image.getHeight()); + return false; + } + return true; + } + + @Override + public void describeTo(Description description) { + description.appendText("image with ID ").appendValue(id); + description.appendText(", created at @") + .appendValue(creationTime); + description.appendText(", has key ").appendValue(key); + description.appendText(", has title ").appendValue(title); + description.appendText(", has description ") + .appendValue(imageDescription); + description.appendText(", has width ").appendValue(width); + description.appendText(", has height ").appendValue(height); } }; } @@ -249,6 +293,31 @@ public class Matchers { } + private static class PostIdMatcher extends TypeSafeDiagnosingMatcher { + + private final String id; + + private PostIdMatcher(String id) { + this.id = id; + } + + @Override + protected boolean matchesSafely(Post item, + Description mismatchDescription) { + if (!item.getId().equals(id)) { + mismatchDescription.appendText("post has ID ").appendValue(item.getId()); + return false; + } + return true; + } + + @Override + public void describeTo(Description description) { + description.appendText("post with ID ").appendValue(id); + } + + } + private static class PostReplyMatcher extends TypeSafeDiagnosingMatcher {