X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Ftest%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2FMatchers.java;fp=src%2Ftest%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2FMatchers.java;h=0000000000000000000000000000000000000000;hb=eb32457356fac09e16ec98394c1b5d48f9dfba84;hp=823cdf9e4e06464c81512ef8d0e8d6ca9efa8237;hpb=ec655d61682a70063c1cf540fe3e41613aaf71a5;p=Sone.git diff --git a/src/test/java/net/pterodactylus/sone/Matchers.java b/src/test/java/net/pterodactylus/sone/Matchers.java deleted file mode 100644 index 823cdf9..0000000 --- a/src/test/java/net/pterodactylus/sone/Matchers.java +++ /dev/null @@ -1,373 +0,0 @@ -/* - * 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 - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package net.pterodactylus.sone; - -import static java.util.regex.Pattern.compile; - -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; - -import com.google.common.base.Optional; -import org.hamcrest.Description; -import org.hamcrest.Matcher; -import org.hamcrest.TypeSafeDiagnosingMatcher; -import org.hamcrest.TypeSafeMatcher; - -/** - * Matchers used throughout the tests. - * - * @author David ‘Bombe’ Roden - */ -public class Matchers { - - public static Matcher matchesRegex(final String regex) { - return new TypeSafeMatcher() { - @Override - protected boolean matchesSafely(String item) { - return compile(regex).matcher(item).matches(); - } - - @Override - public void describeTo(Description description) { - description.appendText("matches: ").appendValue(regex); - } - }; - } - - public static Matcher delivers(final byte[] data) { - return new TypeSafeMatcher() { - byte[] readData = new byte[data.length]; - - @Override - protected boolean matchesSafely(InputStream inputStream) { - int offset = 0; - try { - while (true) { - int r = inputStream.read(); - if (r == -1) { - return offset == data.length; - } - if (offset == data.length) { - return false; - } - if (data[offset] != (readData[offset] = (byte) r)) { - return false; - } - offset++; - } - } catch (IOException ioe1) { - return false; - } - } - - @Override - public void describeTo(Description description) { - description.appendValue(data); - } - - @Override - protected void describeMismatchSafely(InputStream item, - Description mismatchDescription) { - mismatchDescription.appendValue(readData); - } - }; - } - - public static Matcher isPost(String postId, long time, - String text, Optional recipient) { - 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); - } - - public static Matcher isAlbum(final String albumId, - final String parentAlbumId, - final String title, final String albumDescription) { - return new TypeSafeDiagnosingMatcher() { - @Override - protected boolean matchesSafely(Album album, - Description mismatchDescription) { - if (!album.getId().equals(albumId)) { - mismatchDescription.appendText("ID is ") - .appendValue(album.getId()); - return false; - } - if (parentAlbumId == null) { - if (album.getParent() != null) { - mismatchDescription.appendText("has parent album"); - return false; - } - } else { - if (album.getParent() == null) { - mismatchDescription.appendText("has no parent album"); - return false; - } - if (!album.getParent().getId().equals(parentAlbumId)) { - mismatchDescription.appendText("parent album is ") - .appendValue(album.getParent().getId()); - return false; - } - } - if (!title.equals(album.getTitle())) { - mismatchDescription.appendText("has title ") - .appendValue(album.getTitle()); - return false; - } - if (!albumDescription.equals(album.getDescription())) { - mismatchDescription.appendText("has description ") - .appendValue(album.getDescription()); - return false; - } - return true; - } - - @Override - public void describeTo(Description description) { - description.appendText("is album ").appendValue(albumId); - if (parentAlbumId == null) { - description.appendText(", has no parent"); - } else { - description.appendText(", has parent ") - .appendValue(parentAlbumId); - } - description.appendText(", has title ").appendValue(title); - description.appendText(", has description ") - .appendValue(albumDescription); - } - }; - } - - 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); - } - }; - } - - private static class PostMatcher extends TypeSafeDiagnosingMatcher { - - private final String postId; - private final long time; - private final String text; - private final Optional recipient; - - private PostMatcher(String postId, long time, String text, - Optional recipient) { - this.postId = postId; - this.time = time; - this.text = text; - this.recipient = recipient; - } - - @Override - protected boolean matchesSafely(Post post, - Description mismatchDescription) { - if (!post.getId().equals(postId)) { - mismatchDescription.appendText("ID is not ") - .appendValue(postId); - return false; - } - if (post.getTime() != time) { - mismatchDescription.appendText("Time is not @") - .appendValue(time); - return false; - } - if (!post.getText().equals(text)) { - mismatchDescription.appendText("Text is not ") - .appendValue(text); - return false; - } - if (recipient.isPresent()) { - if (!post.getRecipientId().isPresent()) { - mismatchDescription.appendText( - "Recipient not present"); - return false; - } - if (!post.getRecipientId().get().equals(recipient.get())) { - mismatchDescription.appendText("Recipient is not ") - .appendValue(recipient.get()); - return false; - } - } else { - if (post.getRecipientId().isPresent()) { - mismatchDescription.appendText("Recipient is present"); - return false; - } - } - return true; - } - - @Override - public void describeTo(Description description) { - description.appendText("is post with ID ") - .appendValue(postId); - description.appendText(", created at @").appendValue(time); - description.appendText(", text ").appendValue(text); - if (recipient.isPresent()) { - description.appendText(", directed at ") - .appendValue(recipient.get()); - } - } - - } - - 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 { - - private final String postReplyId; - private final String postId; - private final long time; - private final String text; - - private PostReplyMatcher(String postReplyId, String postId, long time, - String text) { - this.postReplyId = postReplyId; - this.postId = postId; - this.time = time; - this.text = text; - } - - @Override - protected boolean matchesSafely(PostReply postReply, - Description mismatchDescription) { - if (!postReply.getId().equals(postReplyId)) { - mismatchDescription.appendText("is post reply ") - .appendValue(postReply.getId()); - return false; - } - if (!postReply.getPostId().equals(postId)) { - mismatchDescription.appendText("is reply to ") - .appendValue(postReply.getPostId()); - return false; - } - if (postReply.getTime() != time) { - mismatchDescription.appendText("is created at @").appendValue( - postReply.getTime()); - return false; - } - if (!postReply.getText().equals(text)) { - mismatchDescription.appendText("says ") - .appendValue(postReply.getText()); - return false; - } - return true; - } - - @Override - public void describeTo(Description description) { - description.appendText("is post reply ").appendValue(postReplyId); - description.appendText(", replies to post ").appendValue(postId); - description.appendText(", is created at @").appendValue(time); - description.appendText(", says ").appendValue(text); - } - - } - -}