package com.github.jreddit.parser.entity; import static org.junit.Assert.assertEquals; import org.json.simple.JSONObject; import org.junit.Test; import com.github.jreddit.parser.entity.Kind; import com.github.jreddit.parser.entity.Submission; import com.github.jreddit.testutil.JsonHelpers; /** * Class for testing Submission of JSON parsing. * * @author Simon Kassing */ public class SubmissionTest { @SuppressWarnings("unchecked") @Test public void testAllSubmissionFields() { // Field values String kind = Kind.LINK.value(); String domain = "imgur.com"; String banned_by = null; JSONObject media_embed = JsonHelpers.createMediaEmbedObject(); String subreddit = "subredditName"; String selftext_html = "Self text HTML"; String selftext = "Self text"; String likes = null; Boolean secure_media = null; String link_flair_text = null; String id = "SubmID"; Long gilded = (long) 0; JSONObject secure_media_embed = new JSONObject(); Boolean clicked = false; Boolean stickied = false; String author = "authorName"; JSONObject media = JsonHelpers.createMediaObject(); Long score = (long) 613; String approved_by = null; Boolean over_18 = true; Boolean hidden = false; String thumbnail = "nsfw"; String subreddit_id = Kind.SUBREDDIT.value() + "_" + "SubrID"; Boolean edited = false; String link_flair_css_class = null; String author_flair_css_class = null; Long downs = (long) 0; Boolean saved = false; Boolean is_self = false; String title = "submTitle"; String permalink = "/r/" + subreddit + "/comments" + id + "/" + title + "/"; String name = kind + "_" + id; Double created = 1405093719.0; String url = "http://imgur.com/a/dxHTq"; String author_flair_text = null; Double created_utc = 1405064919.0; Long ups = (long) 613; Long num_comments = (long) 112; Boolean visited = false; Long num_reports = null; String distinguished = null; String from = "t3_djjksjk"; String from_id = "djjksjk"; String from_kind = "t3"; String removal_reason = "Just because"; Double upvote_ratio = 0.89; // Create JSON Object JSONObject data = new JSONObject(); data.put("kind", kind); data.put("domain", domain); data.put("banned_by", banned_by); data.put("media_embed", media_embed); data.put("subreddit", subreddit); data.put("selftext_html", selftext_html); data.put("selftext", selftext); data.put("likes", likes); data.put("secure_media", secure_media); data.put("link_flair_text", link_flair_text); data.put("id", id); data.put("gilded", gilded); data.put("secure_media_embed", secure_media_embed); data.put("clicked", clicked); data.put("stickied", stickied); data.put("author", author); data.put("media", media); data.put("score", score); data.put("approved_by", approved_by); data.put("over_18", over_18); data.put("hidden", hidden); data.put("thumbnail", thumbnail); data.put("subreddit_id", subreddit_id); data.put("edited", edited); data.put("link_flair_css_class", link_flair_css_class); data.put("author_flair_css_class", author_flair_css_class); data.put("downs", downs); data.put("saved", saved); data.put("is_self", is_self); data.put("title", title); data.put("permalink", permalink); data.put("name", name); data.put("created", created); data.put("url", url); data.put("author_flair_text", author_flair_text); data.put("created_utc", created_utc); data.put("ups", ups); data.put("num_comments", num_comments); data.put("visited", visited); data.put("num_reports", num_reports); data.put("distinguished", distinguished); data.put("from", from); data.put("from_id", from_id); data.put("from_kind", from_kind); data.put("removal_reason", removal_reason); data.put("upvote_ratio", upvote_ratio); // Parse Submission s = new Submission(data); // Test data fields assertEquals(s.getKind(), Kind.match(kind)); assertEquals(s.getDomain(), domain); assertEquals(s.getBannedBy(), banned_by); //assertEquals(s.getMediaEmbed(), media_embed); assertEquals(s.getSubreddit(), subreddit); assertEquals(s.getSelftextHTML(), selftext_html); assertEquals(s.getSelftext(), selftext); assertEquals(s.getLikes(), likes); //assertEquals(s.getSecureMedia(), secure_media); assertEquals(s.getLinkFlairText(), link_flair_text); assertEquals(s.getIdentifier(), id); assertEquals(s.getGilded(), gilded); //assertEquals(s.getSecureMediaEmbed(), secure_media_embed); assertEquals(s.isClicked(), clicked); assertEquals(s.isStickied(), stickied); assertEquals(s.getAuthor(), author); //assertEquals(s.getMedia(), media); assertEquals(s.getScore(), score); assertEquals(s.getApprovedBy(), approved_by); assertEquals(s.isNSFW(), over_18); assertEquals(s.isHidden(), hidden); assertEquals(s.getThumbnail(), thumbnail); assertEquals(s.getSubredditId(), subreddit_id); assertEquals(s.isEdited(), edited); assertEquals(s.getLinkFlairCSSClass(), link_flair_css_class); assertEquals(s.getAuthorFlairCSSClass(), author_flair_css_class); assertEquals(s.getDownVotes(), downs); assertEquals(s.isSaved(), saved); assertEquals(s.isSelf(), is_self); assertEquals(s.getTitle(), title); assertEquals(s.getPermalink(), permalink); assertEquals(s.getFullName(), name); assertEquals(s.getCreated(), created, 0); assertEquals(s.getURL(), url); assertEquals(s.getAuthorFlairText(), author_flair_text); assertEquals(s.getCreatedUTC(), created_utc, 0); assertEquals(s.getUpVotes(), ups); assertEquals(s.getCommentCount(), num_comments); assertEquals(s.isVisited(), visited); assertEquals(s.getReportCount(), num_reports); assertEquals(s.getDistinguished(), distinguished); assertEquals(s.getFrom(), from); assertEquals(s.getFromId(), from_id); assertEquals(s.getFromKind(), from_kind); assertEquals(s.getRemovalReason(), removal_reason); assertEquals(s.getUpvoteRatio(), upvote_ratio); } }