diff options
| -rw-r--r-- | src/main/java/com/pinapelz/datatypes/Channel.java | 21 | ||||
| -rw-r--r-- | src/main/java/com/pinapelz/datatypes/Comment.java | 12 | ||||
| -rw-r--r-- | src/main/java/com/pinapelz/datatypes/CommentSearchResult.java | 10 | ||||
| -rw-r--r-- | src/main/java/com/pinapelz/datatypes/SimpleChannel.java | 15 | ||||
| -rw-r--r-- | src/main/java/com/pinapelz/datatypes/SimpleCommentVideo.java | 18 | ||||
| -rw-r--r-- | src/main/java/com/pinapelz/datatypes/SimpleVideo.java | 25 | ||||
| -rw-r--r-- | src/main/java/com/pinapelz/datatypes/Video.java | 18 | ||||
| -rw-r--r-- | src/main/java/com/pinapelz/datatypes/VideoSearchResult.java | 10 | ||||
| -rw-r--r-- | src/test/java/ChannelQueryTest.java | 6 | ||||
| -rw-r--r-- | src/test/java/DataTypeTests.java | 63 |
10 files changed, 192 insertions, 6 deletions
diff --git a/src/main/java/com/pinapelz/datatypes/Channel.java b/src/main/java/com/pinapelz/datatypes/Channel.java index eabe812..f91bc8c 100644 --- a/src/main/java/com/pinapelz/datatypes/Channel.java +++ b/src/main/java/com/pinapelz/datatypes/Channel.java @@ -2,6 +2,8 @@ package com.pinapelz.datatypes; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import java.util.Objects; + /** * Channel object * @@ -21,4 +23,23 @@ public class Channel extends SimpleChannel{ public String published_at; public boolean inactive; public String description; + + @Override + public boolean equals(Object obj) { + if (this == obj) return true; + if(obj == null || getClass() != obj.getClass()) return false; + Channel channel = (Channel) obj; + return Objects.equals(suborg, channel.suborg) && + Objects.equals(banner, channel.banner) && + Objects.equals(twitter, channel.twitter) && + Objects.equals(video_count, channel.video_count) && + Objects.equals(subscriber_count, channel.subscriber_count) && + Objects.equals(view_count, channel.view_count) && + Objects.equals(clip_count, channel.clip_count) && + Objects.equals(lang, channel.lang) && + Objects.equals(published_at, channel.published_at) && + inactive == channel.inactive && + Objects.equals(description, channel.description) && + super.equals(obj); + } } diff --git a/src/main/java/com/pinapelz/datatypes/Comment.java b/src/main/java/com/pinapelz/datatypes/Comment.java index b9bac76..207041a 100644 --- a/src/main/java/com/pinapelz/datatypes/Comment.java +++ b/src/main/java/com/pinapelz/datatypes/Comment.java @@ -1,5 +1,7 @@ package com.pinapelz.datatypes; +import java.util.Objects; + /** * Comment object * @@ -10,4 +12,14 @@ public class Comment { public String comment_key; public String video_id; public String message; + + @Override + public boolean equals(Object obj) { + if (this == obj) return true; + if(obj == null || getClass() != obj.getClass()) return false; + Comment comment = (Comment) obj; + return Objects.equals(comment_key, comment.comment_key) && + Objects.equals(video_id, comment.video_id) && + Objects.equals(message, comment.message); + } } diff --git a/src/main/java/com/pinapelz/datatypes/CommentSearchResult.java b/src/main/java/com/pinapelz/datatypes/CommentSearchResult.java index 937166f..cf698ea 100644 --- a/src/main/java/com/pinapelz/datatypes/CommentSearchResult.java +++ b/src/main/java/com/pinapelz/datatypes/CommentSearchResult.java @@ -1,6 +1,7 @@ package com.pinapelz.datatypes; import java.util.List; +import java.util.Objects; /** * Result object for a paginated comment search @@ -11,4 +12,13 @@ import java.util.List; public class CommentSearchResult { public int total; public List<SimpleCommentVideo> items; + + @Override + public boolean equals(Object obj) { + if (this == obj) return true; + if(obj == null || getClass() != obj.getClass()) return false; + CommentSearchResult commentSearchResult = (CommentSearchResult) obj; + return total == commentSearchResult.total && + Objects.equals(items, commentSearchResult.items); + } } diff --git a/src/main/java/com/pinapelz/datatypes/SimpleChannel.java b/src/main/java/com/pinapelz/datatypes/SimpleChannel.java index 1f91ced..4bce2e2 100644 --- a/src/main/java/com/pinapelz/datatypes/SimpleChannel.java +++ b/src/main/java/com/pinapelz/datatypes/SimpleChannel.java @@ -2,6 +2,8 @@ package com.pinapelz.datatypes; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import java.util.Objects; + /** * Simple channel object * @@ -16,4 +18,17 @@ public class SimpleChannel { public String type; public String photo; public String org; + + @Override + public boolean equals(Object obj) { + if (this == obj) return true; + if(obj == null || getClass() != obj.getClass()) return false; + SimpleChannel simpleChannel = (SimpleChannel) obj; + return Objects.equals(id, simpleChannel.id) && + Objects.equals(name, simpleChannel.name) && + Objects.equals(english_name, simpleChannel.english_name) && + Objects.equals(type, simpleChannel.type) && + Objects.equals(photo, simpleChannel.photo) && + Objects.equals(org, simpleChannel.org); + } } diff --git a/src/main/java/com/pinapelz/datatypes/SimpleCommentVideo.java b/src/main/java/com/pinapelz/datatypes/SimpleCommentVideo.java index 574ac8b..d4004ef 100644 --- a/src/main/java/com/pinapelz/datatypes/SimpleCommentVideo.java +++ b/src/main/java/com/pinapelz/datatypes/SimpleCommentVideo.java @@ -1,6 +1,7 @@ package com.pinapelz.datatypes; import java.util.List; +import java.util.Objects; /** * The same as SimpleVideo, but with comments @@ -20,4 +21,21 @@ public class SimpleCommentVideo { public int songcount; public SimpleChannel channel; public List<Comment> comments; + + @Override + public boolean equals(Object obj) { + if (this == obj) return true; + if(obj == null || getClass() != obj.getClass()) return false; + SimpleCommentVideo simpleCommentVideo = (SimpleCommentVideo) obj; + return duration == simpleCommentVideo.duration && + songcount == simpleCommentVideo.songcount && + Objects.equals(id, simpleCommentVideo.id) && + Objects.equals(title, simpleCommentVideo.title) && + Objects.equals(type, simpleCommentVideo.type) && + Objects.equals(published_at, simpleCommentVideo.published_at) && + Objects.equals(available_at, simpleCommentVideo.available_at) && + Objects.equals(status, simpleCommentVideo.status) && + Objects.equals(channel, simpleCommentVideo.channel) && + Objects.equals(comments, simpleCommentVideo.comments); + } } diff --git a/src/main/java/com/pinapelz/datatypes/SimpleVideo.java b/src/main/java/com/pinapelz/datatypes/SimpleVideo.java index aad4dbd..b57b997 100644 --- a/src/main/java/com/pinapelz/datatypes/SimpleVideo.java +++ b/src/main/java/com/pinapelz/datatypes/SimpleVideo.java @@ -2,6 +2,8 @@ package com.pinapelz.datatypes; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import java.util.Objects; + /** * Simple video object * @@ -26,4 +28,27 @@ public class SimpleVideo { public int songcount; public String channel_id; public Channel channel; + + @Override + public boolean equals(Object obj) { + if (this == obj) return true; + if(obj == null || getClass() != obj.getClass()) return false; + SimpleVideo simpleVideo = (SimpleVideo) obj; + return duration == simpleVideo.duration && + live_viewers == simpleVideo.live_viewers && + songcount == simpleVideo.songcount && + Objects.equals(id, simpleVideo.id) && + Objects.equals(title, simpleVideo.title) && + Objects.equals(type, simpleVideo.type) && + Objects.equals(topic_id, simpleVideo.topic_id) && + Objects.equals(published_at, simpleVideo.published_at) && + Objects.equals(available_at, simpleVideo.available_at) && + Objects.equals(status, simpleVideo.status) && + Objects.equals(start_scheduled, simpleVideo.start_scheduled) && + Objects.equals(start_actual, simpleVideo.start_actual) && + Objects.equals(end_actual, simpleVideo.end_actual) && + Objects.equals(description, simpleVideo.description) && + Objects.equals(channel_id, simpleVideo.channel_id) && + Objects.equals(channel, simpleVideo.channel); + } } diff --git a/src/main/java/com/pinapelz/datatypes/Video.java b/src/main/java/com/pinapelz/datatypes/Video.java index 45fee73..1f05305 100644 --- a/src/main/java/com/pinapelz/datatypes/Video.java +++ b/src/main/java/com/pinapelz/datatypes/Video.java @@ -4,6 +4,7 @@ package com.pinapelz.datatypes; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import java.util.List; +import java.util.Objects; /** * Video object @@ -21,6 +22,23 @@ public class Video extends SimpleVideo { public String thumbnail; public List<Video> reccomendations; public List<Comment> comments; + + @Override + public boolean equals(Object obj) { + if (this == obj) return true; + if(obj == null || getClass() != obj.getClass()) return false; + Video video = (Video) obj; + return Objects.equals(clips, video.clips) && + Objects.equals(sources, video.sources) && + Objects.equals(refers, video.refers) && + Objects.equals(simulcasts, video.simulcasts) && + Objects.equals(mentions, video.mentions) && + Objects.equals(thumbnail, video.thumbnail) && + Objects.equals(reccomendations, video.reccomendations) && + Objects.equals(comments, video.comments) && + super.equals(obj); + } + } diff --git a/src/main/java/com/pinapelz/datatypes/VideoSearchResult.java b/src/main/java/com/pinapelz/datatypes/VideoSearchResult.java index be021d4..f3d982c 100644 --- a/src/main/java/com/pinapelz/datatypes/VideoSearchResult.java +++ b/src/main/java/com/pinapelz/datatypes/VideoSearchResult.java @@ -1,6 +1,7 @@ package com.pinapelz.datatypes; import java.util.List; +import java.util.Objects; /** * Result object for a paginated video search @@ -11,4 +12,13 @@ import java.util.List; public class VideoSearchResult { public int total; public List<SimpleVideo> items; + + @Override + public boolean equals(Object obj) { + if (this == obj) return true; + if(obj == null || getClass() != obj.getClass()) return false; + VideoSearchResult videoSearchResult = (VideoSearchResult) obj; + return total == videoSearchResult.total && + Objects.equals(items, videoSearchResult.items); + } } diff --git a/src/test/java/ChannelQueryTest.java b/src/test/java/ChannelQueryTest.java index 84cb2f4..44e9250 100644 --- a/src/test/java/ChannelQueryTest.java +++ b/src/test/java/ChannelQueryTest.java @@ -1,15 +1,9 @@ import com.pinapelz.datatypes.Channel; import org.junit.Test; import com.pinapelz.query.ChannelQueryBuilder; -import com.pinapelz.Holodex; -import com.pinapelz.HolodexException; -import java.util.List; - -import static org.junit.Assert.fail; public class ChannelQueryTest { - private final String apiKey = System.getenv("HOLODEX_API_KEY"); @Test public void testChanneQueryIntiailization(){ ChannelQueryBuilder channelQueryBuilder = new ChannelQueryBuilder().setLang("en").setOrg("hololive"); diff --git a/src/test/java/DataTypeTests.java b/src/test/java/DataTypeTests.java new file mode 100644 index 0000000..536e318 --- /dev/null +++ b/src/test/java/DataTypeTests.java @@ -0,0 +1,63 @@ +import com.pinapelz.datatypes.*; +import com.pinapelz.vtuber.Organization; +import org.junit.Test; + +public class DataTypeTests { + @Test + public void testChannelComparison(){ + Channel channel = new Channel(); + channel.name = "test"; + assert(channel.name.equals("test")); + Channel channel2 = new Channel(); + channel2.name = "test"; + assert(channel.equals(channel2)); + Channel channel3 = new Channel(); + channel3.name = "test2"; + assert(!channel.equals(channel3)); + } + + @Test + public void testCommentComparison(){ + Comment comment = new Comment(); + comment.comment_key = "test"; + assert(comment.comment_key.equals("test")); + Comment comment2 = new Comment(); + comment2.comment_key = "test"; + assert(comment.equals(comment2)); + Comment comment3 = new Comment(); + comment3.comment_key = "test2"; + assert(!comment.equals(comment3)); + } + + @Test + public void testVideoComparison(){ + Video video = new Video(); + video.title = "test"; + assert(video.title.equals("test")); + Video video2 = new Video(); + video2.title = "test"; + assert(video.equals(video2)); + Video video3 = new Video(); + video3.title = "test2"; + assert(!video.equals(video3)); + } + + @Test + public void testVideoSearchResultComparison(){ + VideoSearchResult videoSearchResult = new VideoSearchResult(); + videoSearchResult.total = 1; + assert(videoSearchResult.total == 1); + VideoSearchResult videoSearchResult2 = new VideoSearchResult(); + videoSearchResult2.total = 1; + assert(videoSearchResult.equals(videoSearchResult2)); + VideoSearchResult videoSearchResult3 = new VideoSearchResult(); + videoSearchResult3.total = 2; + assert(!videoSearchResult.equals(videoSearchResult3)); + } + + @Test + public void testComparisonOrganiationEnum(){ + assert Organization.HOLOLIVE.isOrg("Hololive"); + } + +} |
