Search in sources :

Example 31 with AtlasInternalSession

use of io.atlasmap.spi.AtlasInternalSession in project atlasmap by atlasmap.

the class JsonFieldReaderTest method testComplexJsonDocumentNestedObjectArray.

@Test
public void testComplexJsonDocumentNestedObjectArray() throws Exception {
    final String document = "{\"menu\": {\n" + "  \"id\": \"file\",\n" + "  \"value\": \"Filed\",\n" + "  \"popup\": {\n" + "    \"menuitem\": [\n" + "      {\"value\": \"New\", \"onclick\": \"CreateNewDoc()\"},\n" + "      {\"value\": \"Open\", \"onclick\": \"OpenDoc()\"},\n" + "      {\"value\": \"Close\", \"onclick\": \"CloseDoc()\"}\n" + "    ]\n" + "  }\n" + "}}";
    reader.setDocument(document);
    JsonField field = AtlasJsonModelFactory.createJsonField();
    field.setPath("/menu/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("file"));
    field.setPath("/menu/value");
    reader.read(session);
    assertNotNull(field.getValue());
    assertThat(field.getValue(), Is.is("Filed"));
    field.setPath("/menu/popup/menuitem[0]/value");
    reader.read(session);
    assertNotNull(field.getValue());
    assertThat(field.getValue(), Is.is("New"));
    field.setPath("/menu/popup/menuitem[0]/onclick");
    reader.read(session);
    assertNotNull(field.getValue());
    assertThat(field.getValue(), Is.is("CreateNewDoc()"));
    field.setPath("/menu/popup/menuitem[1]/value");
    reader.read(session);
    assertNotNull(field.getValue());
    assertThat(field.getValue(), Is.is("Open"));
    field.setPath("/menu/popup/menuitem[1]/onclick");
    reader.read(session);
    assertNotNull(field.getValue());
    assertThat(field.getValue(), Is.is("OpenDoc()"));
    field.setPath("/menu/popup/menuitem[2]/value");
    reader.read(session);
    assertNotNull(field.getValue());
    assertThat(field.getValue(), Is.is("Close"));
    field.setPath("/menu/popup/menuitem[2]/onclick");
    reader.read(session);
    assertNotNull(field.getValue());
    assertThat(field.getValue(), Is.is("CloseDoc()"));
}
Also used : JsonField(io.atlasmap.json.v2.JsonField) Head(io.atlasmap.spi.AtlasInternalSession.Head) AtlasInternalSession(io.atlasmap.spi.AtlasInternalSession) Test(org.junit.Test)

Example 32 with AtlasInternalSession

use of io.atlasmap.spi.AtlasInternalSession in project atlasmap by atlasmap.

the class JsonFieldReaderTest method read.

private AtlasInternalSession read(JsonField field) throws AtlasException {
    AtlasInternalSession session = mock(AtlasInternalSession.class);
    when(session.head()).thenReturn(mock(Head.class));
    when(session.head().getSourceField()).thenReturn(field);
    Audits audits = new Audits();
    when(session.getAudits()).thenReturn(audits);
    reader.read(session);
    return session;
}
Also used : Head(io.atlasmap.spi.AtlasInternalSession.Head) Audits(io.atlasmap.v2.Audits) AtlasInternalSession(io.atlasmap.spi.AtlasInternalSession)

Example 33 with AtlasInternalSession

use of io.atlasmap.spi.AtlasInternalSession in project atlasmap by atlasmap.

the class JsonFieldReaderTest method testComplexJsonDocumentHighlyComplexNested.

@Test
public void testComplexJsonDocumentHighlyComplexNested() throws Exception {
    final String document = new String(Files.readAllBytes(Paths.get("src/test/resources/highly-complex-nested-object.json")));
    reader.setDocument(document);
    JsonField field = AtlasJsonModelFactory.createJsonField();
    field.setPath("/items/item[0]/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("/items/item[0]/type");
    reader.read(session);
    assertNotNull(field.getValue());
    assertThat(field.getValue(), Is.is("donut"));
    resetField(field);
    field.setPath("/items/item[0]/name");
    reader.read(session);
    assertNotNull(field.getValue());
    assertThat(field.getValue(), Is.is("Cake"));
    resetField(field);
    field.setPath("/items/item[0]/ppu");
    reader.read(session);
    assertNotNull(field.getValue());
    assertThat(field.getValue(), Is.is(0.55));
    resetField(field);
    // array of objects
    field.setPath("/items/item[0]/batters/batter[0]/id");
    reader.read(session);
    assertNotNull(field.getValue());
    assertThat(field.getValue(), Is.is("1001"));
    resetField(field);
    field.setPath("/items/item[0]/batters/batter[0]/type");
    reader.read(session);
    assertNotNull(field.getValue());
    assertThat(field.getValue(), Is.is("Regular"));
    resetField(field);
    field.setPath("/items/item[0]/batters/batter[1]/id");
    reader.read(session);
    assertNotNull(field.getValue());
    assertThat(field.getValue(), Is.is("1002"));
    resetField(field);
    field.setPath("/items/item[0]/batters/batter[1]/type");
    reader.read(session);
    assertNotNull(field.getValue());
    assertThat(field.getValue(), Is.is("Chocolate"));
    resetField(field);
    field.setPath("/items/item[0]/batters/batter[2]/id");
    reader.read(session);
    assertNotNull(field.getValue());
    assertThat(field.getValue(), Is.is("1003"));
    resetField(field);
    field.setPath("/items/item[0]/batters/batter[2]/type");
    reader.read(session);
    assertNotNull(field.getValue());
    assertThat(field.getValue(), Is.is("Blueberry"));
    resetField(field);
    field.setPath("/items/item[0]/batters/batter[3]/id");
    reader.read(session);
    assertNotNull(field.getValue());
    assertThat(field.getValue(), Is.is("1004"));
    resetField(field);
    field.setPath("/items/item[0]/batters/batter[3]/type");
    reader.read(session);
    assertNotNull(field.getValue());
    assertThat(field.getValue(), Is.is("Devil's Food"));
    resetField(field);
    // simple array
    field.setPath("/items/item[0]/topping[0]/id");
    reader.read(session);
    assertNotNull(field.getValue());
    assertThat(field.getValue(), Is.is("5001"));
    resetField(field);
    field.setPath("/items/item[0]/topping[0]/type");
    reader.read(session);
    assertNotNull(field.getValue());
    assertThat(field.getValue(), Is.is("None"));
    resetField(field);
    field.setPath("/items/item[0]/topping[1]/id");
    reader.read(session);
    assertNotNull(field.getValue());
    assertThat(field.getValue(), Is.is("5002"));
    resetField(field);
    field.setPath("/items/item[0]/topping[1]/type");
    reader.read(session);
    assertNotNull(field.getValue());
    assertThat(field.getValue(), Is.is("Glazed"));
    resetField(field);
    field.setPath("/items/item[0]/topping[2]/id");
    reader.read(session);
    assertNotNull(field.getValue());
    assertThat(field.getValue(), Is.is("5005"));
    resetField(field);
    field.setPath("/items/item[0]/topping[2]/type");
    reader.read(session);
    assertNotNull(field.getValue());
    assertThat(field.getValue(), Is.is("Sugar"));
    resetField(field);
    field.setPath("/items/item[0]/topping[3]/id");
    reader.read(session);
    assertNotNull(field.getValue());
    assertThat(field.getValue(), Is.is("5007"));
    resetField(field);
    field.setPath("/items/item[0]/topping[3]/type");
    reader.read(session);
    assertNotNull(field.getValue());
    assertThat(field.getValue(), Is.is("Powdered Sugar"));
    resetField(field);
    field.setPath("/items/item[0]/topping[4]/id");
    reader.read(session);
    assertNotNull(field.getValue());
    assertThat(field.getValue(), Is.is("5006"));
    resetField(field);
    field.setPath("/items/item[0]/topping[4]/type");
    reader.read(session);
    assertNotNull(field.getValue());
    assertThat(field.getValue(), Is.is("Chocolate with Sprinkles"));
    resetField(field);
    field.setPath("/items/item[0]/topping[5]/id");
    reader.read(session);
    assertNotNull(field.getValue());
    assertThat(field.getValue(), Is.is("5003"));
    resetField(field);
    field.setPath("/items/item[0]/topping[5]/type");
    reader.read(session);
    assertNotNull(field.getValue());
    assertThat(field.getValue(), Is.is("Chocolate"));
    resetField(field);
    field.setPath("/items/item[0]/topping[6]/id");
    reader.read(session);
    assertNotNull(field.getValue());
    assertThat(field.getValue(), Is.is("5004"));
    resetField(field);
    field.setPath("/items/item[0]/topping[6]/type");
    reader.read(session);
    assertNotNull(field.getValue());
    assertThat(field.getValue(), Is.is("Maple"));
    resetField(field);
    field.setPath("/items/item[1]/id");
    reader.read(session);
    assertNotNull(field.getValue());
    assertThat(field.getValue(), Is.is("0002"));
    resetField(field);
    field.setPath("/items/item[1]/type");
    reader.read(session);
    assertNotNull(field.getValue());
    assertThat(field.getValue(), Is.is("donut"));
    resetField(field);
    field.setPath("/items/item[1]/name");
    reader.read(session);
    assertNotNull(field.getValue());
    assertThat(field.getValue(), Is.is("Raised"));
    resetField(field);
    field.setPath("/items/item[1]/ppu");
    reader.read(session);
    assertNotNull(field.getValue());
    assertThat(field.getValue(), Is.is(0.55));
    resetField(field);
    // array of objects
    field.setPath("/items/item[1]/batters/batter[0]/id");
    reader.read(session);
    assertNotNull(field.getValue());
    assertThat(field.getValue(), Is.is("1001"));
    resetField(field);
    field.setPath("/items/item[1]/batters/batter[0]/type");
    reader.read(session);
    assertNotNull(field.getValue());
    assertThat(field.getValue(), Is.is("Regular"));
    resetField(field);
    field.setPath("/items/item[1]/topping[0]/id");
    reader.read(session);
    assertNotNull(field.getValue());
    assertThat(field.getValue(), Is.is("5001"));
    resetField(field);
    field.setPath("/items/item[1]/topping[0]/type");
    reader.read(session);
    assertNotNull(field.getValue());
    assertThat(field.getValue(), Is.is("None"));
    resetField(field);
    field.setPath("/items/item[1]/topping[1]/id");
    reader.read(session);
    assertNotNull(field.getValue());
    assertThat(field.getValue(), Is.is("5002"));
    resetField(field);
    field.setPath("/items/item[1]/topping[1]/type");
    reader.read(session);
    assertNotNull(field.getValue());
    assertThat(field.getValue(), Is.is("Glazed"));
    resetField(field);
    field.setPath("/items/item[1]/topping[2]/id");
    reader.read(session);
    assertNotNull(field.getValue());
    assertThat(field.getValue(), Is.is("5005"));
    resetField(field);
    field.setPath("/items/item[1]/topping[2]/type");
    reader.read(session);
    assertNotNull(field.getValue());
    assertThat(field.getValue(), Is.is("Sugar"));
    resetField(field);
    field.setPath("/items/item[1]/topping[3]/id");
    reader.read(session);
    assertNotNull(field.getValue());
    assertThat(field.getValue(), Is.is("5003"));
    resetField(field);
    field.setPath("/items/item[1]/topping[3]/type");
    reader.read(session);
    assertNotNull(field.getValue());
    assertThat(field.getValue(), Is.is("Chocolate"));
    resetField(field);
    field.setPath("/items/item[1]/topping[4]/id");
    reader.read(session);
    assertNotNull(field.getValue());
    assertThat(field.getValue(), Is.is("5004"));
    resetField(field);
    field.setPath("/items/item[1]/topping[4]/type");
    reader.read(session);
    assertNotNull(field.getValue());
    assertThat(field.getValue(), Is.is("Maple"));
    resetField(field);
    field.setPath("/items/item[1]/topping[5]/id");
    reader.read(session);
    assertNull(field.getValue());
    resetField(field);
    field.setPath("/items/item[2]/id");
    reader.read(session);
    assertNotNull(field.getValue());
    assertThat(field.getValue(), Is.is("0003"));
    resetField(field);
    field.setPath("/items/item[2]/type");
    reader.read(session);
    assertNotNull(field.getValue());
    assertThat(field.getValue(), Is.is("donut"));
    resetField(field);
    field.setPath("/items/item[2]/name");
    reader.read(session);
    assertNotNull(field.getValue());
    assertThat(field.getValue(), Is.is("Old Fashioned"));
    resetField(field);
    field.setPath("/items/item[2]/ppu");
    reader.read(session);
    assertNotNull(field.getValue());
    assertThat(field.getValue(), Is.is(0.55));
    resetField(field);
    field.setPath("/items/item[3]/id");
    reader.read(session);
    assertNotNull(field.getValue());
    assertThat(field.getValue(), Is.is("0004"));
    resetField(field);
    field.setPath("/items/item[3]/type");
    reader.read(session);
    assertNotNull(field.getValue());
    assertThat(field.getValue(), Is.is("bar"));
    resetField(field);
    field.setPath("/items/item[3]/name");
    reader.read(session);
    assertNotNull(field.getValue());
    assertThat(field.getValue(), Is.is("Bar"));
    resetField(field);
    field.setPath("/items/item[3]/ppu");
    reader.read(session);
    assertNotNull(field.getValue());
    assertThat(field.getValue(), Is.is(0.75));
    resetField(field);
    field.setPath("/items/item[4]/id");
    reader.read(session);
    assertNotNull(field.getValue());
    assertThat(field.getValue(), Is.is("0005"));
    resetField(field);
    field.setPath("/items/item[4]/type");
    reader.read(session);
    assertNotNull(field.getValue());
    assertThat(field.getValue(), Is.is("twist"));
    resetField(field);
    field.setPath("/items/item[4]/name");
    reader.read(session);
    assertNotNull(field.getValue());
    assertThat(field.getValue(), Is.is("Twist"));
    resetField(field);
    field.setPath("/items/item[4]/ppu");
    reader.read(session);
    assertNotNull(field.getValue());
    assertThat(field.getValue(), Is.is(0.65));
    resetField(field);
    field.setPath("/items/item[5]/id");
    reader.read(session);
    assertNotNull(field.getValue());
    assertThat(field.getValue(), Is.is("0006"));
    resetField(field);
    field.setPath("/items/item[5]/type");
    reader.read(session);
    assertNotNull(field.getValue());
    assertThat(field.getValue(), Is.is("filled"));
    resetField(field);
    field.setPath("/items/item[5]/name");
    reader.read(session);
    assertNotNull(field.getValue());
    assertThat(field.getValue(), Is.is("Filled"));
    resetField(field);
    field.setPath("/items/item[5]/ppu");
    reader.read(session);
    assertNotNull(field.getValue());
    assertThat(field.getValue(), Is.is(0.75));
    resetField(field);
    field.setPath("/items/item[5]/fillings/filling[2]/id");
    reader.read(session);
    assertNotNull(field.getValue());
    assertThat(field.getValue(), Is.is("7004"));
    resetField(field);
    field.setPath("/items/item[5]/fillings/filling[3]/addcost");
    reader.read(session);
    assertNotNull(field.getValue());
    assertThat(field.getValue(), Is.is(0));
    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 34 with AtlasInternalSession

use of io.atlasmap.spi.AtlasInternalSession in project atlasmap by atlasmap.

the class JsonFieldReaderTest method testSameFieldNameInDifferentPath.

@Test
public void testSameFieldNameInDifferentPath() throws Exception {
    final String document = new String(Files.readAllBytes(Paths.get("src/test/resources/same-field-name-in-different-path.json")));
    reader.setDocument(document);
    JsonField field = AtlasJsonModelFactory.createJsonField();
    field.setPath("/name");
    AtlasInternalSession session = mock(AtlasInternalSession.class);
    when(session.head()).thenReturn(mock(Head.class));
    when(session.head().getSourceField()).thenReturn(field);
    reader.read(session);
    assertEquals("name", field.getValue());
    field.setPath("/object1/name");
    reader.read(session);
    assertEquals("object1-name", field.getValue());
    field.setPath("/object2/name");
    reader.read(session);
    assertEquals("object2-name", field.getValue());
    field.setPath("/object1/object2/name");
    reader.read(session);
    assertEquals("object1-object2-name", field.getValue());
}
Also used : JsonField(io.atlasmap.json.v2.JsonField) Head(io.atlasmap.spi.AtlasInternalSession.Head) AtlasInternalSession(io.atlasmap.spi.AtlasInternalSession) Test(org.junit.Test)

Example 35 with AtlasInternalSession

use of io.atlasmap.spi.AtlasInternalSession in project atlasmap by atlasmap.

the class ConstantModuleTest method testProcessSourceFieldMapping.

@Test
public void testProcessSourceFieldMapping() throws AtlasException {
    ConstantField field = mock(ConstantField.class);
    when(field.getValue()).thenReturn("fieldValue");
    Head head = mock(Head.class);
    when(head.getSourceField()).thenReturn(field);
    AtlasInternalSession session = mock(AtlasInternalSession.class);
    when(session.head()).thenReturn(head);
    DefaultAtlasConversionService atlasConversionService = mock(DefaultAtlasConversionService.class);
    when(atlasConversionService.fieldTypeFromClass(any(String.class))).thenReturn(FieldType.ANY);
    module.setConversionService(atlasConversionService);
    module.processSourceFieldMapping(session);
}
Also used : Head(io.atlasmap.spi.AtlasInternalSession.Head) AtlasInternalSession(io.atlasmap.spi.AtlasInternalSession) ConstantField(io.atlasmap.v2.ConstantField) 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