/*
* Copyright 2016 Red Hat, Inc. and/or its affiliates.
*
* Licensed 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.drools.workbench.models.guided.dtable.shared.model;
import java.util.List;
import org.drools.workbench.models.datamodel.rule.BaseSingleFieldConstraint;
import org.junit.Before;
import org.junit.Test;
import static org.drools.workbench.models.guided.dtable.shared.model.ConditionCol52.*;
import static org.drools.workbench.models.guided.dtable.shared.model.DTColumnConfig52.FIELD_DEFAULT_VALUE;
import static org.drools.workbench.models.guided.dtable.shared.model.DTColumnConfig52.FIELD_HEADER;
import static org.drools.workbench.models.guided.dtable.shared.model.DTColumnConfig52.FIELD_HIDE_COLUMN;
import static org.junit.Assert.*;
public class ConditionCol52Test extends ColumnTestBase {
private ConditionCol52 column1;
private ConditionCol52 column2;
@Before
public void setup() {
column1 = new ConditionCol52();
column1.setFactField( "field" );
column1.setFieldType( "Type" );
column1.setOperator( "==" );
column1.setValueList( "a,b,c" );
column1.setBinding( "$var" );
column1.setConstraintValueType( BaseSingleFieldConstraint.TYPE_LITERAL );
column1.setHeader( "header" );
column1.setHideColumn( false );
column1.setDefaultValue( new DTCellValue52( "default" ) );
column2 = new ConditionCol52();
column2.setFactField( "field" );
column2.setFieldType( "Type" );
column2.setOperator( "==" );
column2.setValueList( "a,b,c" );
column2.setBinding( "$var" );
column2.setConstraintValueType( BaseSingleFieldConstraint.TYPE_LITERAL );
column2.setHeader( "header" );
column2.setHideColumn( false );
column2.setDefaultValue( new DTCellValue52( "default" ) );
}
@Test
public void testDiffEmpty() {
checkDiffEmpty( column1, column2 );
}
@Test
public void testDiffFactField() {
column1.setFactField( "field1" );
column2.setFactField( "field2" );
checkSingleDiff( FIELD_FACT_FIELD,
"field1",
"field2",
column1,
column2 );
}
@Test
public void testDiffFieldType() {
column1.setFieldType( "Type1" );
column2.setFieldType( "Type2" );
checkSingleDiff( FIELD_FIELD_TYPE,
"Type1",
"Type2",
column1,
column2 );
}
@Test
public void testDiffOperator() {
column1.setOperator( "<" );
column2.setOperator( ">" );
checkSingleDiff( FIELD_OPERATOR,
"<",
">",
column1,
column2 );
}
@Test
public void testDiffValueList() {
column1.setValueList( "v,a,l,u,e" );
column2.setValueList( "l,i,s,t" );
checkSingleDiff( FIELD_VALUE_LIST,
"v,a,l,u,e",
"l,i,s,t",
column1,
column2 );
}
@Test
public void testDiffBinding() {
column1.setBinding( "$var1" );
column2.setBinding( "$var2" );
checkSingleDiff( FIELD_BINDING,
"$var1",
"$var2",
column1,
column2 );
}
@Test
public void testDiffConstraintType() {
column1.setConstraintValueType( BaseSingleFieldConstraint.TYPE_PREDICATE );
column2.setConstraintValueType( BaseSingleFieldConstraint.TYPE_RET_VALUE );
checkSingleDiff( FIELD_CONSTRAINT_VALUE_TYPE,
BaseSingleFieldConstraint.TYPE_PREDICATE,
BaseSingleFieldConstraint.TYPE_RET_VALUE,
column1,
column2 );
}
@Test
public void testDiffDefaultValueOriginalValueIsNull() {
column1.setDefaultValue( null );
column2.setDefaultValue( new DTCellValue52( "default" ) );
checkSingleDiff( FIELD_DEFAULT_VALUE,
null,
"default",
column1,
column2 );
}
@Test
public void testDiffDefaultValueNewValueIsNull() {
column1.setDefaultValue( new DTCellValue52( "default" ) );
column2.setDefaultValue( null );
checkSingleDiff( FIELD_DEFAULT_VALUE,
"default",
null,
column1,
column2 );
}
@Test
public void testDiffAll() {
column1.setFactField( "field1" );
column1.setFieldType( "Type1" );
column1.setOperator( "<" );
column1.setValueList( "v,a,l,u,e" );
column1.setBinding( "$var1" );
column1.setConstraintValueType( BaseSingleFieldConstraint.TYPE_PREDICATE );
column1.setHeader( "header1" );
column1.setHideColumn( false );
column1.setDefaultValue( new DTCellValue52( "default1" ) );
column2.setFactField( "field2" );
column2.setFieldType( "Type2" );
column2.setOperator( ">" );
column2.setValueList( "l,i,s,t" );
column2.setBinding( "$var2" );
column2.setConstraintValueType( BaseSingleFieldConstraint.TYPE_RET_VALUE );
column2.setHeader( "header2" );
column2.setHideColumn( true );
column2.setDefaultValue( new DTCellValue52( "default2" ) );
List<BaseColumnFieldDiff> diff = column1.diff( column2 );
assertNotNull( diff );
assertEquals( 9,
diff.size() );
assertEquals( FIELD_HIDE_COLUMN,
diff.get( 0 ).getFieldName() );
assertEquals( false,
diff.get( 0 ).getOldValue() );
assertEquals( true,
diff.get( 0 ).getValue() );
assertEquals( FIELD_DEFAULT_VALUE,
diff.get( 1 ).getFieldName() );
assertEquals( "default1",
diff.get( 1 ).getOldValue() );
assertEquals( "default2",
diff.get( 1 ).getValue() );
assertEquals( FIELD_HEADER,
diff.get( 2 ).getFieldName() );
assertEquals( "header1",
diff.get( 2 ).getOldValue() );
assertEquals( "header2",
diff.get( 2 ).getValue() );
assertEquals( FIELD_FACT_FIELD,
diff.get( 3 ).getFieldName() );
assertEquals( "field1",
diff.get( 3 ).getOldValue() );
assertEquals( "field2",
diff.get( 3 ).getValue() );
assertEquals( FIELD_FIELD_TYPE,
diff.get( 4 ).getFieldName() );
assertEquals( "Type1",
diff.get( 4 ).getOldValue() );
assertEquals( "Type2",
diff.get( 4 ).getValue() );
assertEquals( FIELD_OPERATOR,
diff.get( 5 ).getFieldName() );
assertEquals( "<",
diff.get( 5 ).getOldValue() );
assertEquals( ">",
diff.get( 5 ).getValue() );
assertEquals( FIELD_VALUE_LIST,
diff.get( 6 ).getFieldName() );
assertEquals( "v,a,l,u,e",
diff.get( 6 ).getOldValue() );
assertEquals( "l,i,s,t",
diff.get( 6 ).getValue() );
assertEquals( FIELD_BINDING,
diff.get( 7 ).getFieldName() );
assertEquals( "$var1",
diff.get( 7 ).getOldValue() );
assertEquals( "$var2",
diff.get( 7 ).getValue() );
assertEquals( FIELD_CONSTRAINT_VALUE_TYPE,
diff.get( 8 ).getFieldName() );
assertEquals( BaseSingleFieldConstraint.TYPE_PREDICATE,
diff.get( 8 ).getOldValue() );
assertEquals( BaseSingleFieldConstraint.TYPE_RET_VALUE,
diff.get( 8 ).getValue() );
}
}