| package org.eclipse.rmf.reqif10.search.test; |
| |
| import java.util.ArrayList; |
| import java.util.Collection; |
| import java.util.GregorianCalendar; |
| import java.util.HashMap; |
| import java.util.Set; |
| |
| import org.eclipse.rmf.reqif10.AttributeDefinitionString; |
| import org.eclipse.rmf.reqif10.AttributeValueString; |
| import org.eclipse.rmf.reqif10.DatatypeDefinitionString; |
| import org.eclipse.rmf.reqif10.ReqIF10Factory; |
| import org.eclipse.rmf.reqif10.SpecObject; |
| import org.eclipse.rmf.reqif10.search.filter.AbstractTextFilter; |
| import org.eclipse.rmf.reqif10.search.filter.AbstractTextFilter.InternalAttribute; |
| import org.eclipse.rmf.reqif10.search.filter.ReqIFFullFilter; |
| import org.eclipse.rmf.reqif10.search.filter.ReqIFFullFilter.Operator; |
| import org.eclipse.rmf.reqif10.search.filter.StringFilter; |
| import org.junit.Before; |
| import org.junit.Test; |
| import org.junit.runner.RunWith; |
| import org.junit.runners.Parameterized; |
| import org.junit.runners.Parameterized.Parameters; |
| |
| |
| @RunWith(Parameterized.class) |
| public class StringFilterInternalTest extends AbstractFilterTest { |
| |
| @Parameters |
| public static Collection<Object[]> data() { |
| |
| /* |
| * AbstractTextFilter.InternalAttribute.DESC => THE_SPECOBJECT_DESC |
| * AbstractTextFilter.InternalAttribute.IDENTIFIER => THE_SPECOBJECT_ID |
| * AbstractTextFilter.InternalAttribute.LONG_NAME => THE_SPECOBJECT_LONG_NAME |
| * |
| * Operator, FilterValue, Attribute, expectedResult |
| * |
| */ |
| |
| |
| HashMap<InternalAttribute, String> values = new HashMap<AbstractTextFilter.InternalAttribute, String>(); |
| values.put(AbstractTextFilter.InternalAttribute.DESC, "THE_SPECOBJECT_DESC"); |
| values.put(AbstractTextFilter.InternalAttribute.IDENTIFIER, "THE_SPECOBJECT_ID"); |
| values.put(AbstractTextFilter.InternalAttribute.LONG_NAME, "THE_SPECOBJECT_LONG_NAME"); |
| |
| |
| ArrayList<Object[]> testData = new ArrayList<Object[]>(); |
| |
| for (AbstractTextFilter.InternalAttribute attribute : values.keySet()) { |
| // match the value on the value |
| testData.add(new Object[] { |
| ReqIFFullFilter.Operator.EQUALS, values.get(attribute), attribute, true, |
| true }); |
| testData.add(new Object[] { |
| ReqIFFullFilter.Operator.NOT_EQUALS, values.get(attribute), attribute, true, |
| false }); |
| |
| // match the value on the value.toLowerCase and caseInSensitive |
| testData.add(new Object[] { |
| ReqIFFullFilter.Operator.EQUALS, values.get(attribute).toLowerCase(), attribute, false, |
| true }); |
| testData.add(new Object[] { |
| ReqIFFullFilter.Operator.NOT_EQUALS, values.get(attribute).toLowerCase(), attribute, false, |
| false }); |
| |
| // match the value on the value.toLowerCase and caseSensitive |
| testData.add(new Object[] { |
| ReqIFFullFilter.Operator.EQUALS, values.get(attribute).toLowerCase(), attribute, true, |
| false }); |
| testData.add(new Object[] { |
| ReqIFFullFilter.Operator.NOT_EQUALS, values.get(attribute).toLowerCase(), attribute, true, |
| true }); |
| |
| |
| testData.add(new Object[] { |
| ReqIFFullFilter.Operator.CONTAINS, "THE_", attribute, true, |
| true }); |
| testData.add(new Object[] { |
| ReqIFFullFilter.Operator.CONTAINS, "THE_", attribute, false, |
| true }); |
| testData.add(new Object[] { |
| ReqIFFullFilter.Operator.CONTAINS, "the_", attribute, true, |
| false }); |
| |
| |
| testData.add(new Object[] { |
| ReqIFFullFilter.Operator.NOT_CONTAINS, "E", attribute, true, |
| false }); |
| testData.add(new Object[] { |
| ReqIFFullFilter.Operator.NOT_CONTAINS, "e", attribute, false, |
| false }); |
| testData.add(new Object[] { |
| ReqIFFullFilter.Operator.NOT_CONTAINS, "XXX", attribute, true, |
| true }); |
| |
| testData.add(new Object[] { |
| ReqIFFullFilter.Operator.REGEXP, ".*E.*", attribute, true, |
| true }); |
| testData.add(new Object[] { |
| ReqIFFullFilter.Operator.REGEXP, ".*e.*", attribute, false, |
| true }); |
| testData.add(new Object[] { |
| ReqIFFullFilter.Operator.REGEXP, ".*e.*", attribute, true, |
| false }); |
| |
| } |
| |
| |
| return testData; |
| |
| } |
| |
| Operator operator; |
| String filterValue; |
| AbstractTextFilter.InternalAttribute attribute; |
| boolean caseSensitive; |
| boolean expectedResult; |
| |
| |
| |
| public StringFilterInternalTest(Operator operator, String filterValue, AbstractTextFilter.InternalAttribute attribute, Boolean caseSensitive, Boolean expectedResult) { |
| this.operator = operator; |
| this.filterValue = filterValue; |
| this.attribute = attribute; |
| this.expectedResult = expectedResult; |
| this.caseSensitive = caseSensitive; |
| } |
| |
| |
| @Test |
| public void testFilter() throws Exception { |
| System.out.println("running " + this.operator + " " + this.filterValue + " on " + attribute + "expecting " + expectedResult); |
| |
| StringFilter filter = new StringFilter(operator, filterValue, attribute, caseSensitive); |
| doMatch(filter, expectedResult); |
| } |
| |
| |
| |
| @Before |
| public void setUp(){ |
| createFixture("abcDEF"); |
| } |
| |
| @Override |
| public void createFixture(Object value) { |
| String theValue = (String) value; |
| |
| AttributeDefinitionString attributeDefinition = ReqIF10Factory.eINSTANCE.createAttributeDefinitionString(); |
| attributeDefinition.setIdentifier("AD_ID0"); |
| DatatypeDefinitionString definition = ReqIF10Factory.eINSTANCE.createDatatypeDefinitionString(); |
| definition.setIdentifier("DD_ID0"); |
| attributeDefinition.setType(definition); |
| AttributeValueString attributeValue = ReqIF10Factory.eINSTANCE.createAttributeValueString(); |
| attributeValue.setDefinition(attributeDefinition); |
| attributeValue.setTheValue(theValue); |
| SpecObject specObject = ReqIF10Factory.eINSTANCE.createSpecObject(); |
| specObject.getValues().add(attributeValue); |
| specObject.setLastChange(new GregorianCalendar(2014, 12, 03)); |
| specObject.setIdentifier("THE_SPECOBJECT_ID"); |
| specObject.setDesc("THE_SPECOBJECT_DESC"); |
| specObject.setLongName("THE_SPECOBJECT_LONG_NAME"); |
| |
| createSpecObjectType(specObject, attributeDefinition); |
| |
| setFixture(specObject); |
| } |
| |
| |
| |
| |
| @Override |
| public Set<Operator> getSupportedOperators() { |
| // TODO Auto-generated method stub |
| return null; |
| } |
| |
| |
| @Override |
| public ReqIFFullFilter 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 { |
| |
| } |
| |
| } |