Package org.openengsb.core.ekb.transformation.wonderland

Source Code of org.openengsb.core.ekb.transformation.wonderland.PropertyConnectionCalculatorTest

/**
* Licensed to the Austrian Association for Software Tool Integration (AASTI)
* under one or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information regarding copyright
* ownership. The AASTI licenses this file to you under the Apache License,
* Version 2.0 (the "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
*     http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package org.openengsb.core.ekb.transformation.wonderland;

import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;

import java.util.HashMap;
import java.util.Map;
import java.util.Set;

import org.junit.BeforeClass;
import org.junit.Test;
import org.openengsb.core.ekb.api.transformation.TransformationDescription;
import org.openengsb.core.ekb.transformation.wonderland.internal.PropertyConnectionCalculator;

public class PropertyConnectionCalculatorTest extends TransformationEngineTests {
    private static PropertyConnectionCalculator calculator;

    @BeforeClass
    public static void initiate() {
        calculator = new PropertyConnectionCalculator(new TestModelRegistry());
    }

    @Test
    public void testIfSimplePropertyConnectionWorks_shouldWork() throws Exception {
        TransformationDescription description =
            new TransformationDescription(getModelADescription(), getModelBDescription());
        description.forwardField("idA", "idB");
        description.forwardField("idA", "testB");
        description.forwardField("testA", "testB");
        Map<String, Set<String>> result = calculator.getPropertyConnections(description);
        assertThat(result.get("idA").contains("idB"), is(true));
        assertThat(result.get("idA").contains("testB"), is(true));
        assertThat(result.get("idA").size(), is(2));
        assertThat(result.get("testA").contains("testB"), is(true));
        assertThat(result.get("testA").size(), is(1));
    }

    @Test
    public void testIfComplexPropertyConnectionWorks_shouldWork() throws Exception {
        TransformationDescription description =
            new TransformationDescription(getModelADescription(), getModelBDescription());
        description.concatField("testB", "#", "idA", "blubA", "blaA");
        description.mapField("idA", "idB", new HashMap<String, String>());
        description.valueField("blubB", "42");
        description.concatField("blubB", ".", "testA", "blubA");
        Map<String, Set<String>> result = calculator.getPropertyConnections(description);
        assertThat(result.get("idA").contains("idB"), is(true));
        assertThat(result.get("idA").contains("testB"), is(true));
        assertThat(result.get("idA").size(), is(2));
        assertThat(result.get("testA").contains("blubB"), is(true));
        assertThat(result.get("testA").size(), is(1));
        assertThat(result.get("blaA").contains("testB"), is(true));
        assertThat(result.get("blaA").size(), is(1));
        assertThat(result.get("blubA").contains("blubB"), is(true));
        assertThat(result.get("blubA").contains("testB"), is(true));
        assertThat(result.get("blubA").size(), is(2));
    }

    @Test
    public void testIfSimplePropertyConnectionWorksWithTemporaryFields_shouldWork() throws Exception {
        TransformationDescription description =
            new TransformationDescription(getModelADescription(), getModelBDescription());
        description.forwardField("idA", "#A");
        description.forwardField("#A", "#B");
        description.forwardField("#B", "#C");
        description.forwardField("#C", "#D");
        description.forwardField("#D", "#E");
        description.forwardField("#E", "#F");
        description.forwardField("#F", "idB");
        Map<String, Set<String>> result = calculator.getPropertyConnections(description);
       
        assertThat(result.get("idA").contains("idB"), is(true));
        assertThat(result.get("idA").size(), is(1));
    }
   
    @Test
    public void testIfComplexPropertyConnectionWorksWithTemporaryFields_shouldWork() throws Exception {
        TransformationDescription description =
            new TransformationDescription(getModelADescription(), getModelBDescription());
        description.forwardField("idA", "#id");
        description.forwardField("#id", "#id+");
        description.forwardField("blubA", "#blub");
        description.concatField("#test", "#", "#id+", "#blub", "blaA");
        description.forwardField("#test", "testB");
        description.mapField("idA", "idB", new HashMap<String, String>());
        description.valueField("blubB", "42");
        description.concatField("blubB", ".", "testA", "#blub");
        Map<String, Set<String>> result = calculator.getPropertyConnections(description);
        assertThat(result.get("idA").contains("idB"), is(true));
        assertThat(result.get("idA").contains("testB"), is(true));
        assertThat(result.get("idA").size(), is(2));
        assertThat(result.get("testA").contains("blubB"), is(true));
        assertThat(result.get("testA").size(), is(1));
        assertThat(result.get("blaA").contains("testB"), is(true));
        assertThat(result.get("blaA").size(), is(1));
        assertThat(result.get("blubA").contains("blubB"), is(true));
        assertThat(result.get("blubA").contains("testB"), is(true));
        assertThat(result.get("blubA").size(), is(2));
    }
}
TOP

Related Classes of org.openengsb.core.ekb.transformation.wonderland.PropertyConnectionCalculatorTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.