use of io.atlasmap.spi.AtlasInternalSession in project atlasmap by atlasmap.
the class JsonFieldReaderTest method testComplexJsonDocumentHighlyNested.
@Test
public void testComplexJsonDocumentHighlyNested() throws Exception {
final String document = new String(Files.readAllBytes(Paths.get("src/test/resources/highly-nested-object.json")));
reader.setDocument(document);
JsonField field = AtlasJsonModelFactory.createJsonField();
field.setPath("/id");
AtlasInternalSession session = mock(AtlasInternalSession.class);
when(session.head()).thenReturn(mock(Head.class));
when(session.head().getSourceField()).thenReturn(field);
reader.read(session);
assertNotNull(field.getValue());
assertThat(field.getValue(), Is.is("0001"));
resetField(field);
field.setPath("/type");
reader.read(session);
assertNotNull(field.getValue());
assertThat(field.getValue(), Is.is("donut"));
resetField(field);
field.setPath("/name");
reader.read(session);
assertNotNull(field.getValue());
assertThat(field.getValue(), Is.is("Cake"));
resetField(field);
field.setPath("/ppu");
reader.read(session);
assertNotNull(field.getValue());
assertThat(field.getValue(), Is.is(0.55));
resetField(field);
field.setPath("/batters/batter[0]/id");
reader.read(session);
assertNotNull(field.getValue());
assertThat(field.getValue(), Is.is("1001"));
resetField(field);
field.setPath("/batters/batter[0]/type");
reader.read(session);
assertNotNull(field.getValue());
assertThat(field.getValue(), Is.is("Regular"));
resetField(field);
field.setPath("/batters/batter[1]/id");
reader.read(session);
assertNotNull(field.getValue());
assertThat(field.getValue(), Is.is("1002"));
resetField(field);
field.setPath("/batters/batter[1]/type");
reader.read(session);
assertNotNull(field.getValue());
assertThat(field.getValue(), Is.is("Chocolate"));
resetField(field);
field.setPath("/batters/batter[2]/id");
reader.read(session);
assertNotNull(field.getValue());
assertThat(field.getValue(), Is.is("1003"));
resetField(field);
field.setPath("/batters/batter[2]/type");
reader.read(session);
assertNotNull(field.getValue());
assertThat(field.getValue(), Is.is("Blueberry"));
resetField(field);
field.setPath("/batters/batter[3]/id");
reader.read(session);
assertNotNull(field.getValue());
assertThat(field.getValue(), Is.is("1004"));
resetField(field);
field.setPath("/batters/batter[3]/type");
reader.read(session);
assertNotNull(field.getValue());
assertThat(field.getValue(), Is.is("Devil's Food"));
resetField(field);
field.setPath("/topping[0]/id");
reader.read(session);
assertNotNull(field.getValue());
assertThat(field.getValue(), Is.is("5001"));
resetField(field);
field.setPath("/topping[0]/type");
reader.read(session);
assertNotNull(field.getValue());
assertThat(field.getValue(), Is.is("None"));
resetField(field);
field.setPath("/topping[1]/id");
reader.read(session);
assertNotNull(field.getValue());
assertThat(field.getValue(), Is.is("5002"));
resetField(field);
field.setPath("/topping[1]/type");
reader.read(session);
assertNotNull(field.getValue());
assertThat(field.getValue(), Is.is("Glazed"));
resetField(field);
field.setPath("/topping[2]/id");
reader.read(session);
assertNotNull(field.getValue());
assertThat(field.getValue(), Is.is("5005"));
resetField(field);
field.setPath("/topping[2]/type");
reader.read(session);
assertNotNull(field.getValue());
assertThat(field.getValue(), Is.is("Sugar"));
resetField(field);
field.setPath("/topping[3]/id");
reader.read(session);
assertNotNull(field.getValue());
assertThat(field.getValue(), Is.is("5007"));
resetField(field);
field.setPath("/topping[3]/type");
reader.read(session);
assertNotNull(field.getValue());
assertThat(field.getValue(), Is.is("Powdered Sugar"));
resetField(field);
field.setPath("/topping[4]/id");
reader.read(session);
assertNotNull(field.getValue());
assertThat(field.getValue(), Is.is("5006"));
resetField(field);
field.setPath("/topping[4]/type");
reader.read(session);
assertNotNull(field.getValue());
assertThat(field.getValue(), Is.is("Chocolate with Sprinkles"));
resetField(field);
field.setPath("/topping[5]/id");
reader.read(session);
assertNotNull(field.getValue());
assertThat(field.getValue(), Is.is("5003"));
resetField(field);
field.setPath("/topping[5]/type");
reader.read(session);
assertNotNull(field.getValue());
assertThat(field.getValue(), Is.is("Chocolate"));
resetField(field);
field.setPath("/topping[6]/id");
reader.read(session);
assertNotNull(field.getValue());
assertThat(field.getValue(), Is.is("5004"));
resetField(field);
field.setPath("/topping[6]/type");
reader.read(session);
assertNotNull(field.getValue());
assertThat(field.getValue(), Is.is("Maple"));
resetField(field);
}
use of io.atlasmap.spi.AtlasInternalSession in project atlasmap by atlasmap.
the class JsonFieldReaderTest method testSimpleJsonDocument.
@Test
public void testSimpleJsonDocument() throws Exception {
final String document = " { \"brand\" : \"Mercedes\", \"doors\" : 5 }";
reader.setDocument(document);
JsonField field = AtlasJsonModelFactory.createJsonField();
field.setPath("/brand");
AtlasInternalSession session = mock(AtlasInternalSession.class);
when(session.head()).thenReturn(mock(Head.class));
when(session.head().getSourceField()).thenReturn(field);
reader.read(session);
assertNotNull(field.getValue());
assertThat(field.getValue(), Is.is("Mercedes"));
field.setFieldType(null);
field.setPath("/doors");
reader.read(session);
assertNotNull(field.getValue());
assertThat(field.getValue(), Is.is(5));
}
use of io.atlasmap.spi.AtlasInternalSession in project atlasmap by atlasmap.
the class JsonFieldReaderTest method testBoundaryValue.
private AtlasInternalSession testBoundaryValue(String fileName, String fieldPath, FieldType fieldType, Object expectedObject) throws Exception {
String filePath = "src" + File.separator + "test" + File.separator + "resources" + File.separator + "jsonFields" + File.separator + fileName;
String document = new String(Files.readAllBytes(Paths.get(filePath)));
reader.setDocument(document);
JsonField field = AtlasJsonModelFactory.createJsonField();
field.setPath(fieldPath);
field.setFieldType(fieldType);
AtlasInternalSession session = read(field);
assertEquals(expectedObject, field.getValue());
return session;
}
use of io.atlasmap.spi.AtlasInternalSession in project atlasmap by atlasmap.
the class JsonFieldReaderTest method testWithNullDocument.
@Test(expected = AtlasException.class)
public void testWithNullDocument() throws Exception {
reader.setDocument(null);
AtlasInternalSession session = mock(AtlasInternalSession.class);
when(session.head().getSourceField()).thenReturn(AtlasJsonModelFactory.createJsonField());
reader.read(session);
}
use of io.atlasmap.spi.AtlasInternalSession in project atlasmap by atlasmap.
the class JsonFieldReaderTest method testWithEmptyDocument.
@Test(expected = AtlasException.class)
public void testWithEmptyDocument() throws Exception {
reader.setDocument("");
AtlasInternalSession session = mock(AtlasInternalSession.class);
when(session.head().getSourceField()).thenReturn(AtlasJsonModelFactory.createJsonField());
reader.read(session);
}
Aggregations