Search in sources :

Example 26 with AtlasInternalSession

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);
}
Also used : JsonField(io.atlasmap.json.v2.JsonField) Head(io.atlasmap.spi.AtlasInternalSession.Head) AtlasInternalSession(io.atlasmap.spi.AtlasInternalSession) Test(org.junit.Test)

Example 27 with AtlasInternalSession

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));
}
Also used : JsonField(io.atlasmap.json.v2.JsonField) Head(io.atlasmap.spi.AtlasInternalSession.Head) AtlasInternalSession(io.atlasmap.spi.AtlasInternalSession) Test(org.junit.Test)

Example 28 with AtlasInternalSession

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;
}
Also used : JsonField(io.atlasmap.json.v2.JsonField) AtlasInternalSession(io.atlasmap.spi.AtlasInternalSession)

Example 29 with AtlasInternalSession

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);
}
Also used : AtlasInternalSession(io.atlasmap.spi.AtlasInternalSession) Test(org.junit.Test)

Example 30 with AtlasInternalSession

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);
}
Also used : AtlasInternalSession(io.atlasmap.spi.AtlasInternalSession) Test(org.junit.Test)

Aggregations

AtlasInternalSession (io.atlasmap.spi.AtlasInternalSession)57 Test (org.junit.Test)37 Head (io.atlasmap.spi.AtlasInternalSession.Head)34 XmlField (io.atlasmap.xml.v2.XmlField)21 JsonField (io.atlasmap.json.v2.JsonField)11 Path (java.nio.file.Path)11 Audits (io.atlasmap.v2.Audits)4 Field (io.atlasmap.v2.Field)4 FieldType (io.atlasmap.v2.FieldType)3 AtlasFieldReader (io.atlasmap.spi.AtlasFieldReader)2 AtlasFieldWriter (io.atlasmap.spi.AtlasFieldWriter)2 LinkedHashMap (java.util.LinkedHashMap)2 AtlasException (io.atlasmap.api.AtlasException)1 TargetAddress (io.atlasmap.java.test.TargetAddress)1 TargetContact (io.atlasmap.java.test.TargetContact)1 TargetOrder (io.atlasmap.java.test.TargetOrder)1 TargetOrderArray (io.atlasmap.java.test.TargetOrderArray)1 TargetTestClass (io.atlasmap.java.test.TargetTestClass)1 TestListOrders (io.atlasmap.java.test.TestListOrders)1 JavaEnumField (io.atlasmap.java.v2.JavaEnumField)1