{"action":"created","comment":{"url":"https://api.github.com/repos/kiegroup/optaplanner/pulls/comments/166889368","pull_request_review_id":95021711,"id":166889368,"diff_hunk":"@@ -0,0 +1,82 @@\n+package org.optaplanner.persistence.jackson.api.score.constraint;\n+\n+import java.io.IOException;\n+import java.util.Arrays;\n+\n+import com.fasterxml.jackson.core.JsonParseException;\n+import com.fasterxml.jackson.databind.JsonMappingException;\n+import com.fasterxml.jackson.databind.ObjectMapper;\n+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;\n+import com.fasterxml.jackson.databind.annotation.JsonSerialize;\n+import com.fasterxml.jackson.databind.module.SimpleModule;\n+import org.junit.Before;\n+import org.junit.Test;\n+import org.optaplanner.core.api.score.Score;\n+import org.optaplanner.core.api.score.buildin.hardsoft.HardSoftScore;\n+import org.optaplanner.core.api.score.constraint.ConstraintMatch;\n+import org.optaplanner.persistence.jackson.api.score.ScoreJacksonJsonSerializer;\n+import org.optaplanner.persistence.jackson.api.score.buildin.hardsoft.HardSoftScoreJacksonJsonDeserializer;\n+\n+import static org.junit.Assert.assertEquals;\n+\n+public class ConstraintMatchJacksonJsonSerializerAndDeserializerTest {\n+\n+    ObjectMapper mapper;\n+\n+    @Before\n+    public void setUp() throws Exception {\n+        mapper = new ObjectMapper();\n+        mapper.registerModule(new SimpleModule()\n+                .addSerializer(HardSoftScore.class, new ScoreJacksonJsonSerializer<HardSoftScore>())\n+                .addDeserializer(HardSoftScore.class, new HardSoftScoreJacksonJsonDeserializer()));\n+    }\n+\n+    private void testSerializeAndDeserialize(String packageName, String name, Score score, Object... list) {","path":"optaplanner-persistence/optaplanner-persistence-jackson/src/test/java/org/optaplanner/persistence/jackson/api/score/constraint/ConstraintMatchJacksonJsonSerializerAndDeserializerTest.java","position":34,"original_position":34,"commit_id":"1e5ca334c6217176881ae40635841d5359c1a553","original_commit_id":"1e5ca334c6217176881ae40635841d5359c1a553","user":{"login":"ge0ffrey","id":176880,"avatar_url":"https://avatars1.githubusercontent.com/u/176880?v=4","gravatar_id":"","url":"https://api.github.com/users/ge0ffrey","html_url":"https://github.com/ge0ffrey","followers_url":"https://api.github.com/users/ge0ffrey/followers","following_url":"https://api.github.com/users/ge0ffrey/following{/other_user}","gists_url":"https://api.github.com/users/ge0ffrey/gists{/gist_id}","starred_url":"https://api.github.com/users/ge0ffrey/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ge0ffrey/subscriptions","organizations_url":"https://api.github.com/users/ge0ffrey/orgs","repos_url":"https://api.github.com/users/ge0ffrey/repos","events_url":"https://api.github.com/users/ge0ffrey/events{/privacy}","received_events_url":"https://api.github.com/users/ge0ffrey/received_events","type":"User","site_admin":false},"body":"the prefix \"test\" in the name of this method is misleading, as in junit 4 era that were suppose to be test methods (and this doesn't have a @Test annotation because it's not a test)","created_at":"2018-02-08T10:27:35Z","updated_at":"2018-02-08T10:27:35Z","html_url":"https://github.com/kiegroup/optaplanner/pull/371#discussion_r166889368","pull_request_url":"https://api.github.com/repos/kiegroup/optaplanner/pulls/371","author_association":"OWNER","_links":{"self":{"href":"https://api.github.com/repos/kiegroup/optaplanner/pulls/comments/166889368"},"html":{"href":"https://github.com/kiegroup/optaplanner/pull/371#discussion_r166889368"},"pull_request":{"href":"https://api.github.com/repos/kiegroup/optaplanner/pulls/371"}}},"pull_request":{"url":"https://api.github.com/repos/kiegroup/optaplanner/pulls/371","id":166857493,"html_url":"https://github.com/kiegroup/optaplanner/pull/371","diff_url":"https://github.com/kiegroup/optaplanner/pull/371.diff","patch_url":"https://github.com/kiegroup/optaplanner/pull/371.patch","issue_url":"https://api.github.com/repos/kiegroup/optaplanner/issues/371","number":371,"state":"open","locked":false,"title":"PLANNER-983: Exposed Indictment, ConstraintMatch and ConstraintMatchTotal to GWT and added their Jackson Serializers/Deserializers","user":{"login":"Christopher-Chianelli","id":15825810,"avatar_url":"https://avatars1.githubusercontent.com/u/15825810?v=4","gravatar_id":"","url":"https://api.github.com/users/Christopher-Chianelli","html_url":"https://github.com/Christopher-Chianelli","followers_url":"https://api.github.com/users/Christopher-Chianelli/followers","following_url":"https://api.github.com/users/Christopher-Chianelli/following{/other_user}","gists_url":"https://api.github.com/users/Christopher-Chianelli/gists{/gist_id}","starred_url":"https://api.github.com/users/Christopher-Chianelli/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Christopher-Chianelli/subscriptions","organizations_url":"https://api.github.com/users/Christopher-Chianelli/orgs","repos_url":"https://api.github.com/users/Christopher-Chianelli/repos","events_url":"https://api.github.com/users/Christopher-Chianelli/events{/privacy}","received_events_url":"https://api.github.com/users/Christopher-Chianelli/received_events","type":"User","site_admin":false},"body":"","created_at":"2018-02-02T17:18:22Z","updated_at":"2018-02-08T10:27:35Z","closed_at":null,"merged_at":null,"merge_commit_sha":"8c6ec644a75dd1fd723a2d7ab86f1b0a6823d7b5","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"milestone":null,"commits_url":"https://api.github.com/repos/kiegroup/optaplanner/pulls/371/commits","review_comments_url":"https://api.github.com/repos/kiegroup/optaplanner/pulls/371/comments","review_comment_url":"https://api.github.com/repos/kiegroup/optaplanner/pulls/comments{/number}","comments_url":"https://api.github.com/repos/kiegroup/optaplanner/issues/371/comments","statuses_url":"https://api.github.com/repos/kiegroup/optaplanner/statuses/1e5ca334c6217176881ae40635841d5359c1a553","head":{"label":"Christopher-Chianelli:PLANNER-983","ref":"PLANNER-983","sha":"1e5ca334c6217176881ae40635841d5359c1a553","user":{"login":"Christopher-Chianelli","id":15825810,"avatar_url":"https://avatars1.githubusercontent.com/u/15825810?v=4","gravatar_id":"","url":"https://api.github.com/users/Christopher-Chianelli","html_url":"https://github.com/Christopher-Chianelli","followers_url":"https://api.github.com/users/Christopher-Chianelli/followers","following_url":"https://api.github.com/users/Christopher-Chianelli/following{/other_user}","gists_url":"https://api.github.com/users/Christopher-Chianelli/gists{/gist_id}","starred_url":"https://api.github.com/users/Christopher-Chianelli/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Christopher-Chianelli/subscriptions","organizations_url":"https://api.github.com/users/Christopher-Chianelli/orgs","repos_url":"https://api.github.com/users/Christopher-Chianelli/repos","events_url":"https://api.github.com/users/Christopher-Chianelli/events{/privacy}","received_events_url":"https://api.github.com/users/Christopher-Chianelli/received_events","type":"User","site_admin":false},"repo":{"id":101435751,"name":"optaplanner","full_name":"Christopher-Chianelli/optaplanner","owner":{"login":"Christopher-Chianelli","id":15825810,"avatar_url":"https://avatars1.githubusercontent.com/u/15825810?v=4","gravatar_id":"","url":"https://api.github.com/users/Christopher-Chianelli","html_url":"https://github.com/Christopher-Chianelli","followers_url":"https://api.github.com/users/Christopher-Chianelli/followers","following_url":"https://api.github.com/users/Christopher-Chianelli/following{/other_user}","gists_url":"https://api.github.com/users/Christopher-Chianelli/gists{/gist_id}","starred_url":"https://api.github.com/users/Christopher-Chianelli/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Christopher-Chianelli/subscriptions","organizations_url":"https://api.github.com/users/Christopher-Chianelli/orgs","repos_url":"https://api.github.com/users/Christopher-Chianelli/repos","events_url":"https://api.github.com/users/Christopher-Chianelli/events{/privacy}","received_events_url":"https://api.github.com/users/Christopher-Chianelli/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/Christopher-Chianelli/optaplanner","description":"Java Constraint Solver to solve vehicle routing, employee rostering and other planning problems.","fork":true,"url":"https://api.github.com/repos/Christopher-Chianelli/optaplanner","forks_url":"https://api.github.com/repos/Christopher-Chianelli/optaplanner/forks","keys_url":"https://api.github.com/repos/Christopher-Chianelli/optaplanner/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Christopher-Chianelli/optaplanner/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Christopher-Chianelli/optaplanner/teams","hooks_url":"https://api.github.com/repos/Christopher-Chianelli/optaplanner/hooks","issue_events_url":"https://api.github.com/repos/Christopher-Chianelli/optaplanner/issues/events{/number}","events_url":"https://api.github.com/repos/Christopher-Chianelli/optaplanner/events","assignees_url":"https://api.github.com/repos/Christopher-Chianelli/optaplanner/assignees{/user}","branches_url":"https://api.github.com/repos/Christopher-Chianelli/optaplanner/branches{/branch}","tags_url":"https://api.github.com/repos/Christopher-Chianelli/optaplanner/tags","blobs_url":"https://api.github.com/repos/Christopher-Chianelli/optaplanner/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Christopher-Chianelli/optaplanner/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Christopher-Chianelli/optaplanner/git/refs{/sha}","trees_url":"https://api.github.com/repos/Christopher-Chianelli/optaplanner/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Christopher-Chianelli/optaplanner/statuses/{sha}","languages_url":"https://api.github.com/repos/Christopher-Chianelli/optaplanner/languages","stargazers_url":"https://api.github.com/repos/Christopher-Chianelli/optaplanner/stargazers","contributors_url":"https://api.github.com/repos/Christopher-Chianelli/optaplanner/contributors","subscribers_url":"https://api.github.com/repos/Christopher-Chianelli/optaplanner/subscribers","subscription_url":"https://api.github.com/repos/Christopher-Chianelli/optaplanner/subscription","commits_url":"https://api.github.com/repos/Christopher-Chianelli/optaplanner/commits{/sha}","git_commits_url":"https://api.github.com/repos/Christopher-Chianelli/optaplanner/git/commits{/sha}","comments_url":"https://api.github.com/repos/Christopher-Chianelli/optaplanner/comments{/number}","issue_comment_url":"https://api.github.com/repos/Christopher-Chianelli/optaplanner/issues/comments{/number}","contents_url":"https://api.github.com/repos/Christopher-Chianelli/optaplanner/contents/{+path}","compare_url":"https://api.github.com/repos/Christopher-Chianelli/optaplanner/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Christopher-Chianelli/optaplanner/merges","archive_url":"https://api.github.com/repos/Christopher-Chianelli/optaplanner/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Christopher-Chianelli/optaplanner/downloads","issues_url":"https://api.github.com/repos/Christopher-Chianelli/optaplanner/issues{/number}","pulls_url":"https://api.github.com/repos/Christopher-Chianelli/optaplanner/pulls{/number}","milestones_url":"https://api.github.com/repos/Christopher-Chianelli/optaplanner/milestones{/number}","notifications_url":"https://api.github.com/repos/Christopher-Chianelli/optaplanner/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Christopher-Chianelli/optaplanner/labels{/name}","releases_url":"https://api.github.com/repos/Christopher-Chianelli/optaplanner/releases{/id}","deployments_url":"https://api.github.com/repos/Christopher-Chianelli/optaplanner/deployments","created_at":"2017-08-25T19:27:25Z","updated_at":"2017-08-25T19:27:38Z","pushed_at":"2018-02-05T13:11:09Z","git_url":"git://github.com/Christopher-Chianelli/optaplanner.git","ssh_url":"git@github.com:Christopher-Chianelli/optaplanner.git","clone_url":"https://github.com/Christopher-Chianelli/optaplanner.git","svn_url":"https://github.com/Christopher-Chianelli/optaplanner","homepage":"http://www.optaplanner.org","size":166092,"stargazers_count":0,"watchers_count":0,"language":"Java","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":null,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"kiegroup:master","ref":"master","sha":"6faabce094b64e669426d3dc05cd0fa64bae10ce","user":{"login":"kiegroup","id":517980,"avatar_url":"https://avatars3.githubusercontent.com/u/517980?v=4","gravatar_id":"","url":"https://api.github.com/users/kiegroup","html_url":"https://github.com/kiegroup","followers_url":"https://api.github.com/users/kiegroup/followers","following_url":"https://api.github.com/users/kiegroup/following{/other_user}","gists_url":"https://api.github.com/users/kiegroup/gists{/gist_id}","starred_url":"https://api.github.com/users/kiegroup/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kiegroup/subscriptions","organizations_url":"https://api.github.com/users/kiegroup/orgs","repos_url":"https://api.github.com/users/kiegroup/repos","events_url":"https://api.github.com/users/kiegroup/events{/privacy}","received_events_url":"https://api.github.com/users/kiegroup/received_events","type":"Organization","site_admin":false},"repo":{"id":1370858,"name":"optaplanner","full_name":"kiegroup/optaplanner","owner":{"login":"kiegroup","id":517980,"avatar_url":"https://avatars3.githubusercontent.com/u/517980?v=4","gravatar_id":"","url":"https://api.github.com/users/kiegroup","html_url":"https://github.com/kiegroup","followers_url":"https://api.github.com/users/kiegroup/followers","following_url":"https://api.github.com/users/kiegroup/following{/other_user}","gists_url":"https://api.github.com/users/kiegroup/gists{/gist_id}","starred_url":"https://api.github.com/users/kiegroup/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kiegroup/subscriptions","organizations_url":"https://api.github.com/users/kiegroup/orgs","repos_url":"https://api.github.com/users/kiegroup/repos","events_url":"https://api.github.com/users/kiegroup/events{/privacy}","received_events_url":"https://api.github.com/users/kiegroup/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/kiegroup/optaplanner","description":"Java Constraint Solver to solve vehicle routing, employee rostering and other planning problems.","fork":false,"url":"https://api.github.com/repos/kiegroup/optaplanner","forks_url":"https://api.github.com/repos/kiegroup/optaplanner/forks","keys_url":"https://api.github.com/repos/kiegroup/optaplanner/keys{/key_id}","collaborators_url":"https://api.github.com/repos/kiegroup/optaplanner/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/kiegroup/optaplanner/teams","hooks_url":"https://api.github.com/repos/kiegroup/optaplanner/hooks","issue_events_url":"https://api.github.com/repos/kiegroup/optaplanner/issues/events{/number}","events_url":"https://api.github.com/repos/kiegroup/optaplanner/events","assignees_url":"https://api.github.com/repos/kiegroup/optaplanner/assignees{/user}","branches_url":"https://api.github.com/repos/kiegroup/optaplanner/branches{/branch}","tags_url":"https://api.github.com/repos/kiegroup/optaplanner/tags","blobs_url":"https://api.github.com/repos/kiegroup/optaplanner/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/kiegroup/optaplanner/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/kiegroup/optaplanner/git/refs{/sha}","trees_url":"https://api.github.com/repos/kiegroup/optaplanner/git/trees{/sha}","statuses_url":"https://api.github.com/repos/kiegroup/optaplanner/statuses/{sha}","languages_url":"https://api.github.com/repos/kiegroup/optaplanner/languages","stargazers_url":"https://api.github.com/repos/kiegroup/optaplanner/stargazers","contributors_url":"https://api.github.com/repos/kiegroup/optaplanner/contributors","subscribers_url":"https://api.github.com/repos/kiegroup/optaplanner/subscribers","subscription_url":"https://api.github.com/repos/kiegroup/optaplanner/subscription","commits_url":"https://api.github.com/repos/kiegroup/optaplanner/commits{/sha}","git_commits_url":"https://api.github.com/repos/kiegroup/optaplanner/git/commits{/sha}","comments_url":"https://api.github.com/repos/kiegroup/optaplanner/comments{/number}","issue_comment_url":"https://api.github.com/repos/kiegroup/optaplanner/issues/comments{/number}","contents_url":"https://api.github.com/repos/kiegroup/optaplanner/contents/{+path}","compare_url":"https://api.github.com/repos/kiegroup/optaplanner/compare/{base}...{head}","merges_url":"https://api.github.com/repos/kiegroup/optaplanner/merges","archive_url":"https://api.github.com/repos/kiegroup/optaplanner/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/kiegroup/optaplanner/downloads","issues_url":"https://api.github.com/repos/kiegroup/optaplanner/issues{/number}","pulls_url":"https://api.github.com/repos/kiegroup/optaplanner/pulls{/number}","milestones_url":"https://api.github.com/repos/kiegroup/optaplanner/milestones{/number}","notifications_url":"https://api.github.com/repos/kiegroup/optaplanner/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/kiegroup/optaplanner/labels{/name}","releases_url":"https://api.github.com/repos/kiegroup/optaplanner/releases{/id}","deployments_url":"https://api.github.com/repos/kiegroup/optaplanner/deployments","created_at":"2011-02-15T19:38:23Z","updated_at":"2018-02-07T17:59:10Z","pushed_at":"2018-02-08T09:33:50Z","git_url":"git://github.com/kiegroup/optaplanner.git","ssh_url":"git@github.com:kiegroup/optaplanner.git","clone_url":"https://github.com/kiegroup/optaplanner.git","svn_url":"https://github.com/kiegroup/optaplanner","homepage":"https://www.optaplanner.org","size":166048,"stargazers_count":775,"watchers_count":775,"language":"Java","has_issues":false,"has_projects":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":407,"mirror_url":null,"archived":false,"open_issues_count":6,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0"},"forks":407,"open_issues":6,"watchers":775,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/kiegroup/optaplanner/pulls/371"},"html":{"href":"https://github.com/kiegroup/optaplanner/pull/371"},"issue":{"href":"https://api.github.com/repos/kiegroup/optaplanner/issues/371"},"comments":{"href":"https://api.github.com/repos/kiegroup/optaplanner/issues/371/comments"},"review_comments":{"href":"https://api.github.com/repos/kiegroup/optaplanner/pulls/371/comments"},"review_comment":{"href":"https://api.github.com/repos/kiegroup/optaplanner/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/kiegroup/optaplanner/pulls/371/commits"},"statuses":{"href":"https://api.github.com/repos/kiegroup/optaplanner/statuses/1e5ca334c6217176881ae40635841d5359c1a553"}},"author_association":"NONE"}}
{"actor":{"display_login":"ge0ffrey"}}