package esl.system;
import com.mongodb.BasicDBObject;
import com.mongodb.util.JSON;
import org.junit.Test;
import static org.junit.Assert.assertEquals;
public class JsonUtilsTest {
@Test
public void test1() {
BasicDBObject dbo = (BasicDBObject) JSON.parse("{'a': {'b': {'c': 42, 'd': 0.8}, 'e': true}, 'f': \"some string\"}");
try {
assertEquals(false, dbo.containsField("a.b.c"));
assertEquals(true, JsonUtils.contains(dbo, "a.b.c"));
} catch(Exception e) {
System.out.println("Got " + e.getClass() + ", message: " + e.getMessage());
}
assertEquals(42, JsonUtils.unnest(dbo, "a.b.c"));
assertEquals(0.8D, (Double)JsonUtils.unnest(dbo, "a.b.d"), 0.001);
assertEquals(true, JsonUtils.unnest(dbo, "a.e"));
assertEquals("some string", JsonUtils.unnest(dbo, "f"));
assertEquals("{ \"b\" : { \"c\" : 42 , \"d\" : 0.8} , \"e\" : true}", (JsonUtils.unnest(dbo, "a")).toString());
assertEquals(null, JsonUtils.unnest(dbo, "a.x.y.z"));
assertEquals(42, (int)JsonUtils.unnest(dbo, "a.b.c", Integer.class));
assertEquals(0.8, JsonUtils.unnest(dbo, "a.b.d", Double.class), 0.001);
assertEquals(true, JsonUtils.unnest(dbo, "a.e", Boolean.class));
assertEquals("some string", JsonUtils.unnest(dbo, "f", String.class));
assertEquals("{ \"b\" : { \"c\" : 42 , \"d\" : 0.8} , \"e\" : true}", JsonUtils.unnest(dbo, "a", BasicDBObject.class).toString());
assertEquals(null, JsonUtils.unnest(dbo, "a.x.y.z", BasicDBObject.class));
}
}