Package hu.sztaki.ilab.longneck.process.task

Source Code of hu.sztaki.ilab.longneck.process.task.ProcessTesterTest

package hu.sztaki.ilab.longneck.process.task;

import java.util.ArrayList;
import java.util.List;
import java.util.Properties;

import hu.sztaki.ilab.longneck.Field;
import hu.sztaki.ilab.longneck.RecordImplForTest;
import hu.sztaki.ilab.longneck.TestCase;
import hu.sztaki.ilab.longneck.bootstrap.CompactProcess;
import hu.sztaki.ilab.longneck.bootstrap.Repository;
import hu.sztaki.ilab.longneck.process.FrameAddressResolver;
import hu.sztaki.ilab.longneck.process.LongneckProcess;
import hu.sztaki.ilab.longneck.process.block.Block;
import hu.sztaki.ilab.longneck.process.block.CloneRecord;
import hu.sztaki.ilab.longneck.process.block.SetNull;

import org.junit.*;

import static org.junit.Assert.*;

/**
*
* @author Geszler Döme <gdome@ilab.sztaki.hu>
*/

public class ProcessTesterTest {

    @Test
    public void testTesterBySetNullExample() {

        // Init process
        FrameAddressResolver frameAddressResolver = new FrameAddressResolver();
        Properties runtimeProperties = new Properties();
        Repository repository = new Repository();
        LongneckProcess process = new LongneckProcess();

        // Init blocks

        SetNull snBlock = new SetNull();
        List<String> fieldNames = new ArrayList<String>();
        fieldNames.add("id");
        snBlock.setApplyTo(fieldNames);
        List<Block> blocks = new ArrayList<Block>();
        blocks.add(snBlock);
        process.setBlocks(blocks);

        // Set test cases

        TestCase testCase = new TestCase();
        RecordImplForTest sourceRecord = new RecordImplForTest();
        sourceRecord.setRole("source");
        sourceRecord.add(new Field("id", "42"));
        testCase.addRecord(sourceRecord);
        RecordImplForTest targetRecord = new RecordImplForTest();
        targetRecord.setRole("target");
        targetRecord.add(new Field("id", null));
        testCase.addRecord(targetRecord);

        List<TestCase> testCases = new ArrayList<TestCase>();
        testCases.add(testCase);
        process.setTestCases(testCases);

        CompactProcess cProcess = new CompactProcess(process, repository,
            frameAddressResolver, runtimeProperties);

        ProcessTester tester = new ProcessTester(cProcess, true);

        assertTrue(tester.testAll());

        // Add a test that fails

        TestCase testCase2 = new TestCase();
        RecordImplForTest sourceRecord2 = new RecordImplForTest();
        sourceRecord2.setRole("source");
        sourceRecord2.add(new Field("id", "42"));
        testCase2.addRecord(sourceRecord2);
        RecordImplForTest targetRecord2 = new RecordImplForTest();
        targetRecord2.setRole("target");
        targetRecord2.add(new Field("id", "42"));
        testCase2.addRecord(targetRecord2);

        testCases.add(testCase2);

        assertFalse(tester.testAll());
    }

    @Test
    public void testTesterByClone() {

        // Init process
        FrameAddressResolver frameAddressResolver = new FrameAddressResolver();
        Properties runtimeProperties = new Properties();
        Repository repository = new Repository();
        LongneckProcess process = new LongneckProcess();

        // Init blocks

        CloneRecord clBlock = new CloneRecord();
        List<Block> blocks = new ArrayList<Block>();
        blocks.add(clBlock);
        process.setBlocks(blocks);

        // Set test cases

        TestCase testCase = new TestCase();
        RecordImplForTest sourceRecord = new RecordImplForTest();
        sourceRecord.setRole("source");
        sourceRecord.add(new Field("id", "42"));
        testCase.addRecord(sourceRecord);
        RecordImplForTest targetRecord = new RecordImplForTest();
        targetRecord.setRole("target");
        targetRecord.add(new Field("id", "42"));
        testCase.addRecord(targetRecord);
        RecordImplForTest targetRecord2 = new RecordImplForTest();
        targetRecord2.setRole("target");
        targetRecord2.add(new Field("id", "42"));
        testCase.addRecord(targetRecord2);

        List<TestCase> testCases = new ArrayList<TestCase>();
        testCases.add(testCase);
        process.setTestCases(testCases);

        CompactProcess cProcess = new CompactProcess(process, repository,
            frameAddressResolver, runtimeProperties);

        ProcessTester tester = new ProcessTester(cProcess, true);

        assertTrue(tester.testAll());

        // Add a test that fails

        TestCase testCase2 = new TestCase();
        testCase2.addRecord(sourceRecord);
        testCase2.addRecord(targetRecord);

        assertFalse(tester.testAll());
    }

    @Test
    public void testTesterByClone2() {

        // Init process
        FrameAddressResolver frameAddressResolver = new FrameAddressResolver();
        Properties runtimeProperties = new Properties();
        Repository repository = new Repository();
        LongneckProcess process = new LongneckProcess();

        // Init blocks

        CloneRecord clBlock = new CloneRecord();
        List<Block> blocks = new ArrayList<Block>();
        blocks.add(clBlock);
        process.setBlocks(blocks);

        // Set test cases

        TestCase testCase = new TestCase();
        RecordImplForTest sourceRecord = new RecordImplForTest();
        sourceRecord.setRole("source");
        sourceRecord.add(new Field("id", "42"));
        testCase.addRecord(sourceRecord);
        RecordImplForTest targetRecord = new RecordImplForTest();
        targetRecord.setRole("target");
        targetRecord.add(new Field("id", "42"));
        testCase.addRecord(targetRecord);
        RecordImplForTest targetRecord2 = new RecordImplForTest();
        targetRecord2.setRole("target");
        targetRecord2.add(new Field("id", "41"));
        testCase.addRecord(targetRecord2);

        List<TestCase> testCases = new ArrayList<TestCase>();
        testCases.add(testCase);
        process.setTestCases(testCases);

        CompactProcess cProcess = new CompactProcess(process, repository,
            frameAddressResolver, runtimeProperties);

        ProcessTester tester = new ProcessTester(cProcess, true);

        /* The process test fails, because there is no perfect
         * matching in the observed-expected target record graph.
         */
       
        assertFalse(tester.testAll());
    }
}
TOP

Related Classes of hu.sztaki.ilab.longneck.process.task.ProcessTesterTest

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.