blob: 775c3ab8fa6117fec4869c1c5c2c423c830592f0 [file] [log] [blame]
package org.eclipse.rmf.reqif10.search.test;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import org.eclipse.rmf.reqif10.AttributeDefinitionBoolean;
import org.eclipse.rmf.reqif10.AttributeValueBoolean;
import org.eclipse.rmf.reqif10.DatatypeDefinitionBoolean;
import org.eclipse.rmf.reqif10.ReqIF10Factory;
import org.eclipse.rmf.reqif10.SpecElementWithAttributes;
import org.eclipse.rmf.reqif10.SpecObject;
import org.eclipse.rmf.reqif10.search.filter.BoolFilter;
import org.eclipse.rmf.reqif10.search.filter.IFilter;
import org.eclipse.rmf.reqif10.search.filter.IFilter.Operator;
import org.eclipse.rmf.reqif10.search.filter.SimpleCompoundFilter;
import org.junit.Before;
import org.junit.Test;
public class CompoundFilterTest extends AbstractFilterTest {
private AttributeDefinitionBoolean attributeDefinition1;
private AttributeDefinitionBoolean attributeDefinition2;
private AttributeDefinitionBoolean attributeDefinition3;
private BoolFilter filterTrue1;
private BoolFilter filterTrue2;
private BoolFilter filterFalse1;
private List<IFilter> filters;
@Before
public void setUp() {
createFixture(true);
filterTrue1 = new BoolFilter(IFilter.Operator.IS, true, attributeDefinition1);
filterTrue2 = new BoolFilter(IFilter.Operator.IS, true, attributeDefinition2);
filterFalse1 = new BoolFilter(IFilter.Operator.IS, true, attributeDefinition3);
filters = new ArrayList<IFilter>();
filters.add(filterTrue1);
filters.add(filterTrue2);
filters.add(filterFalse1);
}
@Test
public void testOr() throws Exception {
SimpleCompoundFilter filter = new SimpleCompoundFilter(filters, true);
doMatch(filter, true);
}
@Test
public void testAnd() throws Exception {
SimpleCompoundFilter filter = new SimpleCompoundFilter(filters, false);
doMatch(filter, true);
}
@Test
public void testAnd2() throws Exception {
filters.clear();
filters.add(filterTrue1);
filters.add(filterTrue2);
SimpleCompoundFilter filter = new SimpleCompoundFilter(filters, false);
doMatch(filter, true);
}
@Override
public void createFixture(Object value) {
if ((value != null) && !(value instanceof Boolean)) {
throw new IllegalArgumentException();
}
SpecObject specObject = ReqIF10Factory.eINSTANCE.createSpecObject();
attributeDefinition1 = createBooleanAttribute(specObject, true);
attributeDefinition2 = createBooleanAttribute(specObject, true);
attributeDefinition3 = createBooleanAttribute(specObject, false);
createSpecObjectType(specObject, attributeDefinition1);
setFixture(specObject);
}
/* creates a new datatypeDefinition, attributeDefinition and attributeValue and adds it to the element
*
* returns the newly created AttributeDefinition
*/
private AttributeDefinitionBoolean createBooleanAttribute(SpecElementWithAttributes element, Boolean value){
AttributeDefinitionBoolean attributeDefinition = ReqIF10Factory.eINSTANCE.createAttributeDefinitionBoolean();
attributeDefinition.setIdentifier("AD_ID0");
DatatypeDefinitionBoolean definition = ReqIF10Factory.eINSTANCE.createDatatypeDefinitionBoolean();
definition.setIdentifier("DD_ID0");
attributeDefinition.setType(definition);
AttributeValueBoolean attributeValue = ReqIF10Factory.eINSTANCE.createAttributeValueBoolean();
attributeValue.setDefinition(attributeDefinition);
attributeValue.setTheValue((Boolean) value);
element.getValues().add(attributeValue);
return attributeDefinition;
}
@Override
public Set<Operator> getSupportedOperators() {
return null;
}
@Override
public IFilter createFilterInstance(Operator operator) {
// TODO Auto-generated method stub
return null;
}
@Override
public void doEmptyTest() throws Exception {
// TODO Auto-generated method stub
}
@Override
public void testExceptionsUnsupportedOperation() throws Exception {
}
}