package org.pac4j.oauth.profile;
import org.junit.Test;
import org.pac4j.core.util.TestsConstants;
import org.pac4j.oauth.profile.facebook.FacebookObject;
import static org.junit.Assert.*;
/**
* This class tests the {@link JsonHelper} class.
*
* @author Jerome Leleu
* @since 1.0.0
*/
public final class JsonHelperTests implements TestsConstants {
private static final String GOOD_TEXT_JSON = "{ \"" + KEY + "\" : \"" + VALUE + "\" }";
private static final String GOOD_BOOLEAN_JSON = "{ \"" + KEY + "\" : " + Boolean.TRUE + " }";
private static final String GOOD_NUMBER_JSON = "{ \"" + KEY + "\" : 1 }";
private static final String GOOD_NODE_JSON = "{ \"" + KEY + "\" : " + GOOD_TEXT_JSON + " }";
private static final String BAD_JSON = "this_is_definitively_not_a_json_text";
@Test
public void testGetFirstNodeOk() {
assertNotNull(JsonHelper.getFirstNode(GOOD_TEXT_JSON));
}
@Test
public void testGetFirstNodeKo() {
assertNull(JsonHelper.getFirstNode(BAD_JSON));
}
@Test
public void testGetText() {
assertEquals(VALUE, JsonHelper.getElement(JsonHelper.getFirstNode(GOOD_TEXT_JSON), KEY));
}
@Test
public void testGetNull() {
assertNull(JsonHelper.getElement(null, KEY));
}
@Test
public void testGetBadKey() {
assertNull(JsonHelper.getElement(JsonHelper.getFirstNode(GOOD_TEXT_JSON), "bad" + KEY));
}
@Test
public void testGetBoolean() {
assertEquals(Boolean.TRUE, JsonHelper.getElement(JsonHelper.getFirstNode(GOOD_BOOLEAN_JSON), KEY));
}
@Test
public void testGetNumber() {
assertEquals(1, JsonHelper.getElement(JsonHelper.getFirstNode(GOOD_NUMBER_JSON), KEY));
}
@Test
public void testGetNode() {
assertEquals(JsonHelper.getFirstNode(GOOD_TEXT_JSON),
JsonHelper.getElement(JsonHelper.getFirstNode(GOOD_NODE_JSON), KEY));
}
@Test
public void testToJSONString() {
final FacebookObject object = new FacebookObject();
object.setId(ID);
object.setName(NAME);
assertEquals("\"{\\\"id\\\":\\\"id\\\",\\\"name\\\":\\\"name\\\"}\"", JsonHelper.toJSONString(JsonHelper.toJSONString(object)));
}
}