package com.mcac0006.services.siftscience; import com.jayway.jsonpath.JsonPath; import com.mcac0006.siftscience.SiftScienceHelper; import com.mcac0006.siftscience.event.domain.CreateContent; import org.junit.Assert; import org.junit.Test; import java.io.IOException; import java.util.Arrays; import java.util.List; import java.util.Map; import static com.mcac0006.services.siftscience.AssertJsonKeys.assertEquals; public class CreateContentBodyTest { @Test public void createContentTest() throws IOException { String expectedApiKey = "INSERT_API_KEY_HERE"; String expectedUserId = "john_doe"; String expectedSessionId = "abcabcabc"; String expectedContactEmail = "test@siftscience.com"; String expectedContactPhone = "1-800-123-1234"; String expectedSubject = "Subject"; String expectedContent = "Lorem ipsum dolor sit amet"; final CreateContent create_order = new CreateContent(); create_order.setApiKey(expectedApiKey); create_order.setUserId(expectedUserId).setSessionId(expectedSessionId).setContactEmail(expectedContactEmail).setContactPhone(expectedContactPhone).setSubject(expectedSubject).setContent(expectedContent); final String json = SiftScienceHelper.serialize(create_order); // the json object we will be asserting final Map<String, Object> $ = JsonPath.read(json, "$"); // assert first level final List<String> $expectedKeys = Arrays.asList("$type", "$api_key", "$user_id", "$session_id", "$contact_email", "$contact_phone", "$subject", "$content"); assertEquals($.keySet(), $expectedKeys); // then assert the values Assert.assertEquals(expectedApiKey, $.get("$api_key")); Assert.assertEquals("$create_content", $.get("$type")); Assert.assertEquals(expectedUserId, $.get("$user_id")); Assert.assertEquals(expectedSessionId, $.get("$session_id")); Assert.assertEquals(expectedContactEmail, $.get("$contact_email")); Assert.assertEquals(expectedContactPhone, $.get("$contact_phone")); Assert.assertEquals(expectedSubject, $.get("$subject")); Assert.assertEquals(expectedContent, $.get("$content")); } }