blob: 9c48206a680747aacbae62db4e6d0758d74c40d9 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2014 Formal Mind GmbH.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Ingo Weigelt - initial API and implementation
******************************************************************************/
package org.eclipse.rmf.reqif10.search.test;
import java.util.Set;
import org.eclipse.rmf.reqif10.AttributeDefinitionInteger;
import org.eclipse.rmf.reqif10.AttributeDefinitionReal;
import org.eclipse.rmf.reqif10.AttributeValueReal;
import org.eclipse.rmf.reqif10.DatatypeDefinitionReal;
import org.eclipse.rmf.reqif10.ReqIF10Factory;
import org.eclipse.rmf.reqif10.SpecObject;
import org.eclipse.rmf.reqif10.search.filter.IFilter;
import org.eclipse.rmf.reqif10.search.filter.IFilter.Operator;
import org.eclipse.rmf.reqif10.search.filter.NumberFilter;
import org.junit.Before;
import org.junit.Test;
public class RealFilterTest extends AbstractFilterTest {
AttributeDefinitionReal attributeDefinition;
@Before
public void setUp(){
createFixture(new Double("1"));
}
@Test
public void testIs() throws Exception {
NumberFilter filter;
filter = new NumberFilter(Operator.IS, new Double("1"), null, attributeDefinition);
doMatch(filter, true);
filter = new NumberFilter(Operator.IS, new Double("0"), null, attributeDefinition);
doMatch(filter, false);
}
@Test
public void testIsNot() throws Exception {
NumberFilter filter;
filter = new NumberFilter(Operator.IS_NOT, new Double("0"), null, attributeDefinition);
doMatch(filter, true);
filter = new NumberFilter(Operator.IS_NOT, new Double("1"), null, attributeDefinition);
doMatch(filter, false);
}
@Test
public void testBetween() throws Exception {
NumberFilter filter;
filter = new NumberFilter(Operator.BETWEEN, new Double("0"), new Double("2"), attributeDefinition);
doMatch(filter, true);
filter = new NumberFilter(Operator.BETWEEN, new Double("0"), new Double("1"), attributeDefinition);
doMatch(filter, true);
filter = new NumberFilter(Operator.BETWEEN, new Double("1"), new Double("2"), attributeDefinition);
doMatch(filter, true);
filter = new NumberFilter(Operator.BETWEEN, new Double("2"), new Double("3"), attributeDefinition);
doMatch(filter, false);
filter = new NumberFilter(Operator.BETWEEN, new Double("3"), new Double("0"), attributeDefinition);
doMatch(filter, false);
}
@Test
public void testGreater() throws Exception {
NumberFilter filter;
filter = new NumberFilter(Operator.GREATER, new Double("0"), null, attributeDefinition);
doMatch(filter, true);
filter = new NumberFilter(Operator.GREATER, new Double("1"), null, attributeDefinition);
doMatch(filter, true);
filter = new NumberFilter(Operator.GREATER, new Double("2"), null, attributeDefinition);
doMatch(filter, false);
filter = new NumberFilter(Operator.GREATER, new Double("0"), new Double("2"), attributeDefinition);
doMatch(filter, true);
}
@Test
public void testSmaller() throws Exception {
NumberFilter filter;
filter = new NumberFilter(Operator.SMALLER, new Double("2"), null, attributeDefinition);
doMatch(filter, true);
filter = new NumberFilter(Operator.SMALLER, new Double("1"), null, attributeDefinition);
doMatch(filter, true);
filter = new NumberFilter(Operator.SMALLER, new Double("0"), null, attributeDefinition);
doMatch(filter, false);
filter = new NumberFilter(Operator.SMALLER, new Double("0"), new Double("2"), attributeDefinition);
doMatch(filter, false);
}
@Test
public void testIsSet() throws Exception {
NumberFilter filter;
filter = new NumberFilter(Operator.IS_SET, new Double("2"), null, attributeDefinition);
doMatch(filter, true);
AttributeDefinitionReal attributeDefinition2 = ReqIF10Factory.eINSTANCE.createAttributeDefinitionReal();
attributeDefinition2.setIdentifier("AD_ID1");
filter = new NumberFilter(Operator.IS_SET, new Double("2"), null, attributeDefinition2);
doMatch(filter, false);
}
@Test
public void testIsNotSet() throws Exception {
NumberFilter filter;
filter = new NumberFilter(Operator.IS_NOT_SET, new Double("2"), null, attributeDefinition);
doMatch(filter, false);
AttributeDefinitionInteger attributeDefinition2 = ReqIF10Factory.eINSTANCE.createAttributeDefinitionInteger();
attributeDefinition2.setIdentifier("AD_ID1");
filter = new NumberFilter(Operator.IS_NOT_SET, new Double("2"), null, attributeDefinition2);
doMatch(filter, false);
}
@Override
public IFilter createFilterInstance(Operator operator) {
return new NumberFilter(operator, new Double(0), null, attributeDefinition);
}
@Override
public void doEmptyTest() throws Exception {
NumberFilter filter;
filter = new NumberFilter(Operator.IS, new Double("0"), null, attributeDefinition);
doMatch(filter, false);
filter = new NumberFilter(Operator.IS_NOT, new Double("10"), null, attributeDefinition);
doMatch(filter, true);
filter = new NumberFilter(Operator.BETWEEN, new Double("0"), new Double("10"), attributeDefinition);
doMatch(filter, false);
filter = new NumberFilter(Operator.GREATER, new Double("0"), null, attributeDefinition);
doMatch(filter, false);
filter = new NumberFilter(Operator.SMALLER, new Double("0"), null, attributeDefinition);
doMatch(filter, false);
}
@Override
public void createFixture(Object value) {
Double theValue = (Double) value;
attributeDefinition = ReqIF10Factory.eINSTANCE.createAttributeDefinitionReal();
attributeDefinition.setIdentifier("AD_ID0");
DatatypeDefinitionReal definition = ReqIF10Factory.eINSTANCE.createDatatypeDefinitionReal();
definition.setIdentifier("DD_ID0");
attributeDefinition.setType(definition);
AttributeValueReal attributeValue = ReqIF10Factory.eINSTANCE.createAttributeValueReal();
attributeValue.setDefinition(attributeDefinition);
if (theValue != null){
System.out.println("seeting the value " + theValue);
attributeValue.setTheValue(theValue);
}
SpecObject specObject = ReqIF10Factory.eINSTANCE.createSpecObject();
specObject.getValues().add(attributeValue);
createSpecObjectType(specObject, attributeDefinition);
setFixture(specObject);
}
@Override
public Set<Operator> getSupportedOperators() {
return NumberFilter.SUPPORTED_OPERATORS;
}
}