/* * 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 static org.drools.workbench.models.guided.dtable.shared.model.Pattern52.FIELD_BOUND_NAME; import static org.drools.workbench.models.guided.dtable.shared.model.Pattern52.FIELD_ENTRY_POINT_NAME; import static org.drools.workbench.models.guided.dtable.shared.model.Pattern52.FIELD_FACT_TYPE; import static org.drools.workbench.models.guided.dtable.shared.model.Pattern52.FIELD_IS_NEGATED; import static org.drools.workbench.models.guided.dtable.shared.model.Pattern52.FIELD_WINDOW; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import java.util.List; import org.drools.workbench.models.datamodel.rule.CEPWindow; import org.junit.Before; import org.junit.Test; public class Pattern52Test extends ColumnTestBase { private Pattern52 column1; private Pattern52 column2; @Before public void setup() { column1 = new Pattern52(); column1.setFactType("Fact"); column1.setBoundName("$var"); column1.setNegated(false); column1.setWindow(new CEPWindow()); column1.setEntryPointName("entryPoint"); column2 = new Pattern52(); column2.setFactType("Fact"); column2.setBoundName("$var"); column2.setNegated(false); column2.setWindow(new CEPWindow()); column2.setEntryPointName("entryPoint"); } @Test public void testDiffEmpty() { checkDiffEmpty(column1, column2); } @Test public void testDiffFactType() { column1.setFactType("Fact1"); column2.setFactType("Fact2"); checkSingleDiff(FIELD_FACT_TYPE, "Fact1", "Fact2", column1, column2); } @Test public void testDiffBoundName() { column1.setBoundName("$var1"); column2.setBoundName("$var2"); checkSingleDiff(FIELD_BOUND_NAME, "$var1", "$var2", column1, column2); } @Test public void testDiffNegated() { column1.setNegated(false); column2.setNegated(true); checkSingleDiff(FIELD_IS_NEGATED, false, true, column1, column2); } @Test public void testDiffWindow() { CEPWindow window1 = new CEPWindow(); window1.setOperator("dummyOp1"); column1.setWindow(window1); CEPWindow window2 = new CEPWindow(); window2.setOperator("dummyOp2"); column2.setWindow(window2); checkSingleDiff(FIELD_WINDOW, window1, window2, column1, column2); } @Test public void testDiffEntryPoint() { column1.setEntryPointName("entryPoint1"); column2.setEntryPointName("entryPoint2"); checkSingleDiff(FIELD_ENTRY_POINT_NAME, "entryPoint1", "entryPoint2", column1, column2); } @Test public void testDiffAll() { column1.setFactType("Fact1"); column1.setBoundName("$var1"); column1.setNegated(false); CEPWindow window1 = new CEPWindow(); window1.setOperator("dummyOp1"); column1.setWindow(window1); column1.setEntryPointName("entryPoint1"); column2.setFactType("Fact2"); column2.setBoundName("$var2"); column2.setNegated(true); CEPWindow window2 = new CEPWindow(); window2.setOperator("dummyOp2"); column2.setWindow(window2); column2.setEntryPointName("entryPoint2"); List<BaseColumnFieldDiff> diff = column1.diff(column2); assertNotNull(diff); assertEquals(5, diff.size()); assertEquals(FIELD_FACT_TYPE, diff.get(0).getFieldName()); assertEquals("Fact1", diff.get(0).getOldValue()); assertEquals("Fact2", diff.get(0).getValue()); assertEquals(FIELD_BOUND_NAME, diff.get(1).getFieldName()); assertEquals("$var1", diff.get(1).getOldValue()); assertEquals("$var2", diff.get(1).getValue()); assertEquals(FIELD_IS_NEGATED, diff.get(2).getFieldName()); assertEquals(false, diff.get(2).getOldValue()); assertEquals(true, diff.get(2).getValue()); assertEquals(FIELD_WINDOW, diff.get(3).getFieldName()); assertEquals(window1, diff.get(3).getOldValue()); assertEquals(window2, diff.get(3).getValue()); assertEquals(FIELD_ENTRY_POINT_NAME, diff.get(4).getFieldName()); assertEquals("entryPoint1", diff.get(4).getOldValue()); assertEquals("entryPoint2", diff.get(4).getValue()); } @Test public void testCloneColumn() { Pattern52 clone = column1.clonePattern(); assertEquals(column1.getFactType(), clone.getFactType()); assertEquals(column1.getBoundName(), clone.getBoundName()); assertEquals(column1.getWindow(), clone.getWindow()); assertEquals(column1.getEntryPointName(), clone.getEntryPointName()); assertEquals(column1.isNegated(), clone.isNegated()); } }