package com.mcac0006.services.siftscience; import java.io.IOException; import java.util.Arrays; import java.util.LinkedHashMap; import java.util.List; import java.util.Set; import org.codehaus.jackson.JsonGenerationException; import org.codehaus.jackson.map.JsonMappingException; import org.junit.Assert; import org.junit.Test; import com.jayway.jsonpath.JsonPath; import com.mcac0006.siftscience.SiftScienceHelper; import com.mcac0006.siftscience.event.domain.SendMessage; import com.mcac0006.siftscience.event.domain.SubmitReview; import com.mcac0006.siftscience.types.SubmissionStatus; import static com.mcac0006.services.siftscience.AssertJsonKeys.assertEquals; public class SendMessageAndSubmitReviewBodyTest { @Test @SuppressWarnings("unchecked") public void sendMessageTest() throws JsonGenerationException, JsonMappingException, IOException { final SendMessage send_message = new SendMessage(); send_message.setApiKey("INSERT_API_KEY_HERE"); send_message.setUserId("billy_jones_301").setRecipientUserId("512924123").setSubject("Subject line of the message.").setContent("Text content of message."); /* * Assert. */ final String json = SiftScienceHelper.serialize(send_message); // the json object we will be asserting final Object read = JsonPath.read(json, "$"); final LinkedHashMap<String, Object> $ =(LinkedHashMap<String, Object>)read; // assert first level final List<String> $expectedKeys = Arrays.asList("$type", "$api_key", "$user_id", "$recipient_user_id", "$subject", "$content"); assertEquals($.keySet(), $expectedKeys); // then assert the values Assert.assertEquals("INSERT_API_KEY_HERE", $.get("$api_key")); Assert.assertEquals("$send_message", $.get("$type")); Assert.assertEquals("billy_jones_301", $.get("$user_id")); Assert.assertEquals("512924123", $.get("$recipient_user_id")); Assert.assertEquals("Subject line of the message.", $.get("$subject")); Assert.assertEquals("Text content of message.", $.get("$content")); } @Test @SuppressWarnings("unchecked") public void submitReviewTest() throws JsonGenerationException, JsonMappingException, IOException { final SubmitReview submit_review = new SubmitReview(); submit_review.setApiKey("INSERT_API_KEY_HERE"); submit_review.setUserId("billy_jones_301").setContent("Text content of submitted review goes here.").setReviewTitle("Title of Review Goes Here").setItemId("V4C3D5R2Z6").setReviewedUserId("billy_jones_301").setSubmissionStatus(SubmissionStatus.SUCCESS); /* * Assert. */ final String json = SiftScienceHelper.serialize(submit_review); // the json object we will be asserting final Object read = JsonPath.read(json, "$"); final LinkedHashMap<String, Object> $ =(LinkedHashMap<String, Object>)read; // assert first level final List<String> $expectedKeys = Arrays.asList("$type", "$api_key", "$user_id", "$content", "$review_title", "$item_id", "$reviewed_user_id", "$submission_status"); assertEquals($.keySet(), $expectedKeys); // then assert the values Assert.assertEquals("INSERT_API_KEY_HERE", $.get("$api_key")); Assert.assertEquals("$submit_review", $.get("$type")); Assert.assertEquals("billy_jones_301", $.get("$user_id")); Assert.assertEquals("Text content of submitted review goes here.", $.get("$content")); Assert.assertEquals("Title of Review Goes Here", $.get("$review_title")); Assert.assertEquals("V4C3D5R2Z6", $.get("$item_id")); Assert.assertEquals("billy_jones_301", $.get("$reviewed_user_id")); Assert.assertEquals("$success", $.get("$submission_status")); } }