Package hu.sztaki.ilab.longneck

Source Code of hu.sztaki.ilab.longneck.CloneTest

package hu.sztaki.ilab.longneck;

import hu.sztaki.ilab.longneck.process.block.*;
import hu.sztaki.ilab.longneck.process.constraint.*;
import hu.sztaki.ilab.longneck.util.dummy.DummyBlock;
import hu.sztaki.ilab.longneck.util.dummy.DummyCase;
import hu.sztaki.ilab.longneck.util.dummy.DummyConstraint;
import hu.sztaki.ilab.longneck.util.dummy.DummyEntity;
import java.util.Arrays;
import org.junit.Assert;
import org.junit.Test;

/**
* Tests cloning support on blocks and constraints.
*
* @author Péter Molnár <molnarp@sztaki.mta.hu>
*/
public class CloneTest {
   
    /**
     * Tests AddFlag cloning including AbstractFlagBlock and AbstractAtomicBlock coverage.
     */
    @Test
    public void testAddFlag() {
        AddFlag o = new AddFlag();
        o.setApplyTo(Arrays.asList(new String[] { "a", "b" }));
        o.setFlag(ConstraintFlag.INVALID);
       
        // Test correct class and differing object instances
        final Object ocopy = o.clone();       
        Assert.assertTrue(ocopy instanceof AddFlag);
        Assert.assertFalse(o == ocopy);
       
        final AddFlag copy = (AddFlag) ocopy;
       
        // Test attributes
       
        Assert.assertEquals(Arrays.asList(new String[] {"a", "b"}), copy.getApplyTo());
        Assert.assertFalse(o.getApplyTo() == copy.getApplyTo());
       
        Assert.assertEquals(ConstraintFlag.INVALID, copy.getFlag());
    }
   
    @Test
    public void testBlockReference() {
        BlockReference o = new BlockReference();
        o.setId("abc");
        o.setVersion("1");
        o.setReferredBlock(new GenericBlock());
       
        // Test correct class and differing object instances
        final Object ocopy = o.clone();       
        Assert.assertTrue(ocopy instanceof BlockReference);
        Assert.assertFalse(o == ocopy);
       
        final BlockReference copy = (BlockReference) ocopy;
       
        // Test attributes
        Assert.assertFalse(o.getMapping() == copy.getMapping());
        Assert.assertFalse(o.getReferredBlock() == copy.getReferredBlock());
    }
   
    @Test
    public void testBreak() {
        Break o = new Break();
       
        // Test correct class and differing object instances
        final Object ocopy = o.clone();       
        Assert.assertTrue(ocopy instanceof Break);
        Assert.assertFalse(o == ocopy);       
    }
   
    /**
     * Tests Case construct, and AbstractCompoundBlock, Sequence.
     */
    @Test
    public void testCase() {
        Case o = new Case();
        o.setBlocks(Arrays.asList(new Block[] { new DummyBlock(1), new DummyBlock(2) }));
       
        // Test correct class and differing object instances
        final Object ocopy = o.clone();       
        Assert.assertTrue(ocopy instanceof Case);
        Assert.assertFalse(o == ocopy);
       
        final Case copy = (Case) ocopy;
       
        // Test attributes
        Assert.assertEquals(Arrays.asList(new Block[] { new DummyBlock(1), new DummyBlock(2) }), copy.getBlocks());
        Assert.assertFalse(o.getBlocks() == copy.getBlocks());
        TestUtils.assertListItemsNotSame(o.getBlocks(), copy.getBlocks());
    }
   
    /**
     * Tests Check.
     */
    @Test
    public void testCheck() {
        Check o = new Check();
        o.setConstraints(Arrays.asList(new Constraint[] { new DummyConstraint(1), new DummyConstraint(2) }));
       
        // Test correct class and differing object instances
        final Object ocopy = o.clone();       
        Assert.assertTrue(ocopy instanceof Check);
        Assert.assertFalse(o == ocopy);       
    }
   
    @Test
    public void testClearFlags() {
        ClearFlags o = new ClearFlags();
        o.setApplyTo(Arrays.asList(new String[] { "a", "b" }));
       
        // Test correct class and differing object instances
        final Object ocopy = o.clone();       
        Assert.assertTrue(ocopy instanceof ClearFlags);
        Assert.assertFalse(o == ocopy);
       
        // Attributes tested in AddFlag test
       
    }
   
    @Test
    public void testCopy() {
        Copy o = new Copy();
        o.setApplyTo(Arrays.asList(new String[] { "a", "b" }));
       
        // Test correct class and differing object instances
        final Object ocopy = o.clone();       
        Assert.assertTrue(ocopy instanceof Copy);
        Assert.assertFalse(o == ocopy);
       
        // Test attributes
        // applyTo tested in AddFlag test
        // from immutable
        // withFlags primitive       
    }
   
    @Test
    public void testGenericBlock() {
        GenericBlock o = new GenericBlock();
        o.setId("a");
        o.setVersion("1");
        Check inputConstraints = new Check();
        inputConstraints.setConstraints(Arrays.asList(new Constraint[] { new DummyConstraint(1), new DummyConstraint(2) }));
        o.setInputConstraints(inputConstraints);
        Check outputConstraints = new Check();
        outputConstraints.setConstraints(Arrays.asList(new Constraint[] { new DummyConstraint(3), new DummyConstraint(4) }));
        o.setOutputConstraints(outputConstraints);
       
        // Test correct class and differing object instances
        final Object ocopy = o.clone();       
        Assert.assertTrue(ocopy instanceof GenericBlock);
        Assert.assertFalse(o == ocopy);
       
        final GenericBlock copy = (GenericBlock) ocopy;
       
        // Test attributes
        Assert.assertEquals(Arrays.asList(new Constraint[] { new DummyConstraint(1), new DummyConstraint(2) }), copy.getInputConstraints().getConstraints());
        Assert.assertFalse(o.getInputConstraints() == copy.getInputConstraints());
        TestUtils.assertListItemsNotSame(o.getInputConstraints().getConstraints(), copy.getInputConstraints().getConstraints());

        Assert.assertEquals(Arrays.asList(new Constraint[] { new DummyConstraint(3), new DummyConstraint(4) }), copy.getOutputConstraints().getConstraints());
        Assert.assertFalse(o.getOutputConstraints() == copy.getOutputConstraints());
        TestUtils.assertListItemsNotSame(o.getOutputConstraints().getConstraints(), copy.getOutputConstraints().getConstraints());
    }
   
    @Test
    public void testIf() {
        If o = new If();
       
        // Test correct class and differing object instances
        final Object ocopy = o.clone();       
        Assert.assertTrue(ocopy instanceof If);
        Assert.assertFalse(o == ocopy);
       
        // condition and else branch already tested.
    }
   
    @Test
    public void testImplode() {
        Implode o = new Implode();
        o.setSources(Arrays.asList(new String[] { "a", "b" }));
       
        // Test correct class and differing object instances
        final Object ocopy = o.clone();       
        Assert.assertTrue(ocopy instanceof Implode);
        Assert.assertFalse(o == ocopy);
       
        final Implode copy = (Implode) ocopy;
       
        // Test attributes
        //glue immutable
        Assert.assertEquals(Arrays.asList(new String[] { "a", "b" }), copy.getSources());
        Assert.assertFalse(o.getSources() == copy.getSources());
    }
   
    @Test
    public void testMatchExtract() {
        MatchExtract o = new MatchExtract();
        o.setBlocks(Arrays.asList(new Block[] { new DummyBlock(1), new DummyBlock(2) }));
       
       
        // Test correct class and differing object instances
        final Object ocopy = o.clone();       
        Assert.assertTrue(ocopy instanceof MatchExtract);
        Assert.assertFalse(o == ocopy);
       
        final MatchExtract copy = (MatchExtract) ocopy;
       
        // Test attributes
        Assert.assertEquals(Arrays.asList(new Block[] { new DummyBlock(1), new DummyBlock(2) }), copy.getBlocks());
        Assert.assertFalse(o.getBlocks() == copy.getBlocks());
        TestUtils.assertListItemsNotSame(o.getBlocks(), copy.getBlocks());       
    }
   
    @Test
    public void testRemove() {
        Remove o = new Remove();
       
        // Test correct class and differing object instances
        final Object ocopy = o.clone();       
        Assert.assertTrue(ocopy instanceof Remove);
        Assert.assertFalse(o == ocopy);       
    }
   
    @Test
    public void testRemoveFlag() {
        RemoveFlag o = new RemoveFlag();
       
        // Test correct class and differing object instances
        final Object ocopy = o.clone();       
        Assert.assertTrue(ocopy instanceof RemoveFlag);
        Assert.assertFalse(o == ocopy);               
    }
   
    @Test
    public void testReplaceAll() {
        ReplaceAll o = new ReplaceAll();
       
        // Test correct class and differing object instances
        final Object ocopy = o.clone();       
        Assert.assertTrue(ocopy instanceof ReplaceAll);
        Assert.assertFalse(o == ocopy);
       
        // Attributes
        // replacement immutable
    }
   
    @Test
    public void testReplaceFirst() {
        ReplaceFirst o = new ReplaceFirst();
       
        // Test correct class and differing object instances
        final Object ocopy = o.clone();       
        Assert.assertTrue(ocopy instanceof ReplaceFirst);
        Assert.assertFalse(o == ocopy);
       
        // Attributes
        // replacement immutable       
    }
   
    @Test
    public void testSequence() {
        Sequence o = new Sequence();
        o.setBlocks(Arrays.asList(new Block[] { new DummyBlock(1), new DummyBlock(2) }));
       
        // Test correct class and differing object instances
        final Object ocopy = o.clone();       
        Assert.assertTrue(ocopy instanceof Sequence);
        Assert.assertFalse(o == ocopy);
       
        final Sequence copy = (Sequence) ocopy;
       
        // Test attributes
        Assert.assertEquals(Arrays.asList(new Block[] { new DummyBlock(1), new DummyBlock(2) }), copy.getBlocks());
        Assert.assertFalse(o.getBlocks() == copy.getBlocks());
        TestUtils.assertListItemsNotSame(o.getBlocks(), copy.getBlocks());       
    }
       
    @Test
    public void testSet() {
        Set o = new Set();
       
        // Test correct class and differing object instances
        final Object ocopy = o.clone();       
        Assert.assertTrue(ocopy instanceof Set);
        Assert.assertFalse(o == ocopy);
       
        // Attributes
        // value immutable       
    }
   
    @Test
    public void testSetCharacterCase() {
        SetCharacterCase o = new SetCharacterCase();
       
        // Test correct class and differing object instances
        final Object ocopy = o.clone();       
        Assert.assertTrue(ocopy instanceof SetCharacterCase);
        Assert.assertFalse(o == ocopy);
       
        // Attributes
        // case and charactertarget are immutable       
    }
   
    @Test
    public void testSwitch() {
        Switch o = new Switch();
       
        // Test correct class and differing object instances
        final Object ocopy = o.clone();       
        Assert.assertTrue(ocopy instanceof Switch);
        Assert.assertFalse(o == ocopy);       
    }
    /**
     * Tests strict switch and AbstractSwitch.
     */
    @Test
    public void testSwitchStrict() {
        SwitchStrict o = new SwitchStrict();
        o.setCases(Arrays.asList(new Case[] { new DummyCase(1), new DummyCase(2) }));
        // Test correct class and differing object instances
        final Object ocopy = o.clone();       
        Assert.assertTrue(ocopy instanceof SwitchStrict);
        Assert.assertFalse(o == ocopy);       
       
        final SwitchStrict copy = (SwitchStrict) ocopy;
       
        // Test cases
        Assert.assertEquals(Arrays.asList(new Case[] { new DummyCase(1), new DummyCase(2) }), copy.getCases());
        Assert.assertEquals(Arrays.asList(new Case[] { new DummyCase(1), new DummyCase(2) }), copy.getBlocks());
        Assert.assertFalse(o.getCases() == copy.getCases());
        TestUtils.assertListItemsNotSame(o.getCases(), copy.getCases());
    }
   
    @Test
    public void testTryAll() {
        TryAll o = new TryAll();
       
        // Test correct class and differing object instances
        final Object ocopy = o.clone();       
        Assert.assertTrue(ocopy instanceof TryAll);
        Assert.assertFalse(o == ocopy);     
    }
   
    @Test
    public void testUnicodeNormalize() {
        UnicodeNormalize o = new UnicodeNormalize();
       
        // Test correct class and differing object instances
        final Object ocopy = o.clone();       
        Assert.assertTrue(ocopy instanceof UnicodeNormalize);
        Assert.assertFalse(o == ocopy);     
       
        // Form attribute immutable       
    }
   
    @Test
    public void testExtractUnixtimestamp() {
      ExtractUnixtimestamp o = new ExtractUnixtimestamp();
         o.setBlocks(Arrays.asList(new Block[] { new DummyBlock(1), new DummyBlock(2) }));
        
        
         // Test correct class and differing object instances
         final Object ocopy = o.clone();       
         Assert.assertTrue(ocopy instanceof ExtractUnixtimestamp);
         Assert.assertFalse(o == ocopy);
        
         final ExtractUnixtimestamp copy = (ExtractUnixtimestamp) ocopy;
        
         // Test attributes
         Assert.assertEquals(Arrays.asList(new Block[] { new DummyBlock(1), new DummyBlock(2) }), copy.getBlocks());
         Assert.assertFalse(o.getBlocks() == copy.getBlocks());
         TestUtils.assertListItemsNotSame(o.getBlocks(), copy.getBlocks())
    }
   
    // Constraints
   
    @Test
    public void testAlphabetConstraint() {
        AlphabetConstraint o = new AlphabetConstraint();
        o.setClasses(Arrays.asList(new CharacterClass[] { CharacterClass.Letter, CharacterClass.Number }));
       
        // Test correct class and differing object instances
        final Object ocopy = o.clone();       
        Assert.assertTrue(ocopy instanceof AlphabetConstraint);
        Assert.assertFalse(o == ocopy);
       
        final AlphabetConstraint copy = (AlphabetConstraint) ocopy;
       
        // Attributes
        // policy immutable
        Assert.assertEquals(Arrays.asList(new CharacterClass[] { CharacterClass.Letter, CharacterClass.Number }), copy.getClasses());
        Assert.assertFalse(o.getClasses() == copy.getClasses());
    }
   
    @Test
    public void testAndOperator() {
        AndOperator o = new AndOperator();
        o.setConstraints(Arrays.asList(new Constraint[] { new DummyConstraint(1), new DummyConstraint(2) }));
       
        // Test correct class and differing object instances
        final Object ocopy = o.clone();       
        Assert.assertTrue(ocopy instanceof AndOperator);
        Assert.assertFalse(o == ocopy);
       
        final AndOperator copy = (AndOperator) ocopy;
       
        // Attributes
        Assert.assertEquals(Arrays.asList(new Constraint[] { new DummyConstraint(1), new DummyConstraint(2) }),
                copy.getConstraints());
        Assert.assertFalse(o.getConstraints() == copy.getConstraints());       
        TestUtils.assertListItemsNotSame(o.getConstraints(), copy.getConstraints());
    }
   
    @Test
    public void testCharacterCaseConstraint() {
        CharacterCaseConstraint o = new CharacterCaseConstraint();
       
        // Test correct class and differing object instances
        final Object ocopy = o.clone();       
        Assert.assertTrue(ocopy instanceof CharacterCaseConstraint);
        Assert.assertFalse(o == ocopy);
       
        // charCase immutable
    }
   
    @Test
    public void testConstraintReference() {
        ConstraintReference o = new ConstraintReference();
        o.setReferredConstraint(new DummyConstraint(1));
       
        // Test correct class and differing object instances
        final Object ocopy = o.clone();       
        Assert.assertTrue(ocopy instanceof ConstraintReference);
        Assert.assertFalse(o == ocopy);
       
        final ConstraintReference copy = (ConstraintReference) ocopy;
       
//        Assert.assertFalse(o.getReferredConstraint() == copy.getReferredConstraint());
        Assert.assertFalse(o.getMapping() == copy.getMapping());
    }
   
    @Test
    public void testEntityReference() {
        EntityReference o = new EntityReference();
        o.setReferredEntity(new DummyEntity(1));
       
        // Test correct class and differing object instances
        final Object ocopy = o.clone();       
        Assert.assertTrue(ocopy instanceof EntityReference);
        Assert.assertFalse(o == ocopy);
       
        final EntityReference copy = (EntityReference) ocopy;
       
//        Assert.assertFalse(o.getReferredEntity() == copy.getReferredEntity());
        Assert.assertFalse(o.getMapping() == copy.getMapping());
    }
   
    @Test
    public void testEqualsConstraint() {
        EqualsConstraint o = new EqualsConstraint();
       
        // Test correct class and differing object instances
        final Object ocopy = o.clone();       
        Assert.assertTrue(ocopy instanceof EqualsConstraint);
        Assert.assertFalse(o == ocopy);
    }
   
    @Test
    public void testEqualsImplodedConstraint() {
        EqualsImplodedConstraint o = new EqualsImplodedConstraint();
        o.setSources(Arrays.asList(new String[] { "a", "b" }));
               
       
        // Test correct class and differing object instances
        final Object ocopy = o.clone();       
        Assert.assertTrue(ocopy instanceof EqualsImplodedConstraint);
        Assert.assertFalse(o == ocopy);
       
        final EqualsImplodedConstraint copy = (EqualsImplodedConstraint) ocopy;
       
        // glue immutable
        Assert.assertEquals(Arrays.asList(new String[] { "a", "b" }), copy.getSources());
        Assert.assertFalse(o.getSources() == copy.getSources());
    }
   
    @Test
    public void testExistsConstraint() {
        ExistsConstraint o = new ExistsConstraint();
       
        // Test correct class and differing object instances
        final Object ocopy = o.clone();       
        Assert.assertTrue(ocopy instanceof ExistsConstraint);
        Assert.assertFalse(o == ocopy);
    }
   
    @Test
    public void testFalseConstraint() {
        FalseConstraint o = new FalseConstraint();
       
        // Test correct class and differing object instances
        final Object ocopy = o.clone();       
        Assert.assertTrue(ocopy instanceof FalseConstraint);
        Assert.assertFalse(o == ocopy);       
    }
   
    @Test
    public void testGenericConstraint() {
        GenericConstraint o = new GenericConstraint();
       
        // Test correct class and differing object instances
        final Object ocopy = o.clone();       
        Assert.assertTrue(ocopy instanceof GenericConstraint);
        Assert.assertFalse(o == ocopy);
       
        // version and id immutable
    }
   
    @Test
    public void testGenericEntity() {
        GenericEntity o = new GenericEntity();
       
        // Test correct class and differing object instances
        final Object ocopy = o.clone();       
        Assert.assertTrue(ocopy instanceof GenericEntity);
        Assert.assertFalse(o == ocopy);       
    }
   
    @Test
    public void testHasFlagConstraint() {
        HasFlagConstraint o = new HasFlagConstraint();
       
        // Test correct class and differing object instances
        final Object ocopy = o.clone();       
        Assert.assertTrue(ocopy instanceof HasFlagConstraint);
        Assert.assertFalse(o == ocopy);
       
        // flag enum immutable
    }
    @Test
    public void testIsNullConstraint() {
        IsNullConstraint o = new IsNullConstraint();
       
        // Test correct class and differing object instances
        final Object ocopy = o.clone();       
        Assert.assertTrue(ocopy instanceof IsNullConstraint);
        Assert.assertFalse(o == ocopy);       
    }
    @Test
    public void testMatchConstraint() {
        MatchConstraint o = new MatchConstraint();
        o.setApplyTo(Arrays.asList(new String[] { "a", "b" }));
       
        // Test correct class and differing object instances
        final Object ocopy = o.clone();       
        Assert.assertTrue(ocopy instanceof MatchConstraint);
        Assert.assertFalse(o == ocopy);
       
        final MatchConstraint copy = (MatchConstraint) ocopy;
       
        Assert.assertEquals(Arrays.asList(new String[] { "a", "b" }), copy.getApplyTo());
        Assert.assertFalse(o.getApplyTo() == copy.getApplyTo());       
    }
   
    @Test
    public void testNotNullConstraint() {
        NotNullConstraint o = new NotNullConstraint();
       
        // Test correct class and differing object instances
        final Object ocopy = o.clone();       
        Assert.assertTrue(ocopy instanceof NotNullConstraint);
        Assert.assertFalse(o == ocopy);       
    }
   
    @Test
    public void testNotOperator() {
        NotOperator o = new NotOperator();
        o.setConstraint(new DummyConstraint(1));
       
        // Test correct class and differing object instances
        final Object ocopy = o.clone();       
        Assert.assertTrue(ocopy instanceof NotOperator);
        Assert.assertFalse(o == ocopy);       
       
        final NotOperator copy = (NotOperator) ocopy;
       
        // Test attributes
        Assert.assertEquals(new DummyConstraint(1), copy.getConstraint());
        Assert.assertTrue(o.getConstraint() != copy.getConstraint());
    }
   
    @Test
    public void testOrOperator() {
        OrOperator o = new OrOperator();
       
        // Test correct class and differing object instances
        final Object ocopy = o.clone();       
        Assert.assertTrue(ocopy instanceof OrOperator);
        Assert.assertFalse(o == ocopy);       
    }

    @Test
    public void testTrueConstraint() {
        TrueConstraint o = new TrueConstraint();
       
        // Test correct class and differing object instances
        final Object ocopy = o.clone();       
        Assert.assertTrue(ocopy instanceof TrueConstraint);
        Assert.assertFalse(o == ocopy);       
    }
   
    @Test
    public void testWhen() {
        When o = new When();
        o.setThenConstraints(Arrays.asList(new Constraint[] { new DummyConstraint(1), new DummyConstraint(2) }));
        o.setElseConstraints(Arrays.asList(new Constraint[] { new DummyConstraint(3), new DummyConstraint(4) }));
       
        // Test correct class and differing object instances
        final Object ocopy = o.clone();       
        Assert.assertTrue(ocopy instanceof When);
        Assert.assertFalse(o == ocopy);
       
        final When copy = (When) ocopy;
       
        Assert.assertEquals(Arrays.asList(new Constraint[] { new DummyConstraint(1), new DummyConstraint(2) }), copy.getThenConstraints());
        Assert.assertFalse(o.getThenConstraints() == copy.getThenConstraints());
        TestUtils.assertListItemsNotSame(o.getThenConstraints(), copy.getThenConstraints());
       
        Assert.assertEquals(Arrays.asList(new Constraint[] { new DummyConstraint(3), new DummyConstraint(4) }), copy.getElseConstraints());
        Assert.assertFalse(o.getElseConstraints() == copy.getElseConstraints());
        TestUtils.assertListItemsNotSame(o.getElseConstraints(), copy.getElseConstraints());       
    }
   
   
   
}
TOP

Related Classes of hu.sztaki.ilab.longneck.CloneTest

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.