precondition.setLogicalConnectiveType(LogicalConnectiveTypes.OR);
precondition.getLogicConditions().add(logicCondition1);
precondition.getLogicConditions().add(logicCondition2);
Constraint constraint1 = createConstraint(property1, "true");
constraint1.setOperator(BaseConditionOperators.EQUALS);
Constraint constraint2 = createConstraint(property2, "true");
constraint2.setOperator(BaseConditionOperators.EQUALS);
Constraint constraint3 = createConstraint(property3, "true");
constraint3.setOperator(BaseConditionOperators.EQUALS);
Constraint constraint4 = createConstraint(property4, "true");
constraint4.setOperator(BaseConditionOperators.EQUALS);
assignedConstraintsSet.getAssignedConstraints().add(constraint1);
assignedConstraintsSet.getAssignedConstraints().add(constraint2);
assignedConstraintsSet.getAssignedConstraints().add(constraint3);
assignedConstraintsSet.getAssignedConstraints().add(constraint4);
// true & true | true & true
constraint1.setValue("true");
constraint2.setValue("true");
constraint3.setValue("true");
constraint4.setValue("true");
assertLogicalTrue();
// false & true | true & true
constraint1.setValue("false");
constraint2.setValue("true");
constraint3.setValue("true");
constraint4.setValue("true");
assertLogicalTrue();
// false & false | true & true
constraint1.setValue("false");
constraint2.setValue("false");
constraint3.setValue("true");
constraint4.setValue("true");
assertLogicalTrue();
// false & false | false & true
constraint1.setValue("false");
constraint2.setValue("false");
constraint3.setValue("false");
constraint4.setValue("true");
assertLogicalFalse();
// false & false | false & false
constraint1.setValue("false");
constraint2.setValue("false");
constraint3.setValue("false");
constraint4.setValue("false");
assertLogicalFalse();
// undefined & true | true & true
constraint1.setValue("true");
constraint2.setValue("true");
constraint3.setValue("true");
constraint4.setValue("true");
constraint1.setTechnicalProperty(property5);
constraint2.setTechnicalProperty(property2);
constraint3.setTechnicalProperty(property3);
constraint4.setTechnicalProperty(property4);
assertLogicalTrue();
// undefined & undefined | true & true
constraint1.setValue("true");
constraint2.setValue("true");
constraint3.setValue("true");
constraint4.setValue("true");
constraint1.setTechnicalProperty(property5);
constraint2.setTechnicalProperty(property6);
constraint3.setTechnicalProperty(property3);
constraint4.setTechnicalProperty(property4);
assertLogicalTrue();
// undefined & undefined | undefined & true
constraint1.setValue("true");
constraint2.setValue("true");
constraint3.setValue("true");
constraint4.setValue("true");
constraint1.setTechnicalProperty(property5);
constraint2.setTechnicalProperty(property6);
constraint3.setTechnicalProperty(property7);
constraint4.setTechnicalProperty(property4);
assertLogicalUndefined();
// undefined & undefined | undefined & undefined
constraint1.setValue("true");
constraint2.setValue("true");
constraint3.setValue("true");
constraint4.setValue("true");
constraint1.setTechnicalProperty(property5);
constraint2.setTechnicalProperty(property6);
constraint3.setTechnicalProperty(property7);
constraint4.setTechnicalProperty(property8);
assertLogicalUndefined();
// false & false | false & undefined
constraint1.setValue("false");
constraint2.setValue("false");
constraint3.setValue("false");
constraint4.setValue("true");
constraint1.setTechnicalProperty(property1);
constraint2.setTechnicalProperty(property2);
constraint3.setTechnicalProperty(property3);
constraint4.setTechnicalProperty(property8);
assertLogicalFalse();
// undefined& false | false & undefined
constraint1.setValue("true");
constraint2.setValue("false");
constraint3.setValue("false");
constraint4.setValue("true");
constraint1.setTechnicalProperty(property5);
constraint2.setTechnicalProperty(property2);
constraint3.setTechnicalProperty(property3);
constraint4.setTechnicalProperty(property7);
assertLogicalFalse();
// undefined& false | false & undefined
constraint1.setValue("true");
constraint2.setValue("false");
constraint3.setValue("false");
constraint4.setValue("true");
constraint1.setTechnicalProperty(property5);
constraint2.setTechnicalProperty(property2);
constraint3.setTechnicalProperty(property3);
constraint4.setTechnicalProperty(property7);
assertLogicalFalse();
}