aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPinapelz <yukais@pinapelz.com>2023-12-13 22:28:09 -0800
committerPinapelz <yukais@pinapelz.com>2023-12-13 22:28:09 -0800
commit1c8e0751812a7e274f425d1e4a6f885d9e28587d (patch)
tree84bbab0d1c6b39e2615ec59aea99268877e64f2a /src
parent5403be78976c32dc7b62986ed279bad93fc7a459 (diff)
Add equality check to all custom Datatypes
Signed-off-by: Pinapelz <yukais@pinapelz.com>
Diffstat (limited to 'src')
-rw-r--r--src/main/java/com/pinapelz/datatypes/Channel.java21
-rw-r--r--src/main/java/com/pinapelz/datatypes/Comment.java12
-rw-r--r--src/main/java/com/pinapelz/datatypes/CommentSearchResult.java10
-rw-r--r--src/main/java/com/pinapelz/datatypes/SimpleChannel.java15
-rw-r--r--src/main/java/com/pinapelz/datatypes/SimpleCommentVideo.java18
-rw-r--r--src/main/java/com/pinapelz/datatypes/SimpleVideo.java25
-rw-r--r--src/main/java/com/pinapelz/datatypes/Video.java18
-rw-r--r--src/main/java/com/pinapelz/datatypes/VideoSearchResult.java10
-rw-r--r--src/test/java/ChannelQueryTest.java6
-rw-r--r--src/test/java/DataTypeTests.java63
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");
+ }
+
+}
send patches to the email below
yukais@pinapelz.com
include the subject [PATCH repo_name]
pinapelz.com
homepage