adopted unitTest to refactoring of IS_SET, IS_NOT_SET operators
diff --git a/org.eclipse.rmf.reqif10.search.test/src/org/eclipse/rmf/reqif10/search/test/AttributeTest.java b/org.eclipse.rmf.reqif10.search.test/src/org/eclipse/rmf/reqif10/search/test/AttributeTest.java
new file mode 100644
index 0000000..ee51680
--- /dev/null
+++ b/org.eclipse.rmf.reqif10.search.test/src/org/eclipse/rmf/reqif10/search/test/AttributeTest.java
@@ -0,0 +1,121 @@
+package org.eclipse.rmf.reqif10.search.test;
+
+import java.util.GregorianCalendar;
+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.SpecObjectType;
+import org.eclipse.rmf.reqif10.search.filter.IFilter;
+import org.eclipse.rmf.reqif10.search.filter.IFilter.Operator;
+import org.eclipse.rmf.reqif10.search.filter.StringFilter;
+import org.junit.Test;
+
+public class AttributeTest extends AbstractFilterTest{
+
+	private AttributeDefinitionString attributeDefinition;
+
+	
+	@Test
+	public void testIsSet() throws Exception {
+		StringFilter filter;
+		
+		// The attribute is defined and a value is set
+		createFixture("test", true);
+		filter = new StringFilter(IFilter.Operator.IS_SET, "", attributeDefinition, false);
+		doMatch(filter, true);
+		
+		// The attribute is defined and the value is null
+		createFixture(null, true);
+		filter = new StringFilter(IFilter.Operator.IS_SET, "", attributeDefinition, false);
+		doMatch(filter, false);
+		
+		// The attribute is not defined
+		createFixture(null, false);
+		filter = new StringFilter(IFilter.Operator.IS_SET, "", attributeDefinition, false);
+		doMatch(filter, false);
+	}
+	
+	@Test
+	public void testIsNotSet() throws Exception {
+		/* is not set: return true only if the attribute exisits, but is not set (irrespective of default value).
+		 */
+		StringFilter filter;
+		
+		// The attribute is defined and a value is set
+		createFixture("test", true);
+		filter = new StringFilter(IFilter.Operator.IS_NOT_SET, "", attributeDefinition, false);
+		doMatch(filter, false);
+		
+		// The attribute is defined and the value is null
+		createFixture(null, true);
+		filter = new StringFilter(IFilter.Operator.IS_NOT_SET, "", attributeDefinition, false);
+		doMatch(filter, true);
+
+		// The attribute is not defined
+		createFixture(null, false);
+		filter = new StringFilter(IFilter.Operator.IS_NOT_SET, "", attributeDefinition, false);
+		doMatch(filter, false);
+		
+	}
+	
+	
+	public void createFixture(Object value, boolean withAttribute) {
+		String theValue = (String) value;
+		
+		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);
+		if (value != null){
+			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");
+		
+		SpecObjectType specObjectType = ReqIF10Factory.eINSTANCE.createSpecObjectType();
+		if (withAttribute){
+			specObjectType.getSpecAttributes().add(attributeDefinition);
+		}
+		specObject.setType(specObjectType);
+		
+		setFixture(specObject);
+	}
+	
+	@Override
+	public void createFixture(Object value) {
+		createFixture(value, true);
+	}
+
+	@Override
+	public Set<Operator> getSupportedOperators() {
+		return StringFilter.SUPPORTED_OPERATORS;
+	}
+
+	@Override
+	public IFilter createFilterInstance(Operator operator) {
+		return new StringFilter(operator, "", attributeDefinition, true);
+	}
+
+	@Override
+	public void doEmptyTest() throws Exception {
+		// Do nothing
+	}
+	
+	@Override
+	public void testOnEmptyAttribute() throws Exception {
+		// Do nothing
+	}
+
+}
diff --git a/org.eclipse.rmf.reqif10.search.test/src/org/eclipse/rmf/reqif10/search/test/BoolFilterDefaultsTest.java b/org.eclipse.rmf.reqif10.search.test/src/org/eclipse/rmf/reqif10/search/test/BoolFilterDefaultsTest.java
index 917a3b9..1e37382 100644
--- a/org.eclipse.rmf.reqif10.search.test/src/org/eclipse/rmf/reqif10/search/test/BoolFilterDefaultsTest.java
+++ b/org.eclipse.rmf.reqif10.search.test/src/org/eclipse/rmf/reqif10/search/test/BoolFilterDefaultsTest.java
@@ -54,5 +54,15 @@
 		
 		setFixture(specObject);
 	}
+	
+	@Override
+	public void testIsSet() throws Exception {
+		// super would fail because of the changed fixture
+	}
+
+	@Override
+	public void testIsNotSet() throws Exception {
+		// super would fail because of the changed fixture
+	}
 
 }
diff --git a/org.eclipse.rmf.reqif10.search.test/src/org/eclipse/rmf/reqif10/search/test/BoolFilterTest.java b/org.eclipse.rmf.reqif10.search.test/src/org/eclipse/rmf/reqif10/search/test/BoolFilterTest.java
index 93378a9..7bd75bf 100644
--- a/org.eclipse.rmf.reqif10.search.test/src/org/eclipse/rmf/reqif10/search/test/BoolFilterTest.java
+++ b/org.eclipse.rmf.reqif10.search.test/src/org/eclipse/rmf/reqif10/search/test/BoolFilterTest.java
@@ -80,7 +80,7 @@
 		nonExistingAttributeDefinition.setIdentifier("AD_ID1");
 		
 		filter = new BoolFilter(Operator.IS_NOT_SET, false, nonExistingAttributeDefinition);
-		doMatch(filter, true);
+		doMatch(filter, false);
 	}	
 	
 	
diff --git a/org.eclipse.rmf.reqif10.search.test/src/org/eclipse/rmf/reqif10/search/test/DateFilterDefaultsTest.java b/org.eclipse.rmf.reqif10.search.test/src/org/eclipse/rmf/reqif10/search/test/DateFilterDefaultsTest.java
index 26f0d54..018ceae 100644
--- a/org.eclipse.rmf.reqif10.search.test/src/org/eclipse/rmf/reqif10/search/test/DateFilterDefaultsTest.java
+++ b/org.eclipse.rmf.reqif10.search.test/src/org/eclipse/rmf/reqif10/search/test/DateFilterDefaultsTest.java
@@ -54,4 +54,15 @@
 		setFixture(specObject);
 	}
 
+	
+	@Override
+	public void testIsSet() throws Exception {
+		// super would fail because of the changed fixture
+	}
+
+	@Override
+	public void testIsNotSet() throws Exception {
+		// super would fail because of the changed fixture
+	}
+	
 }
diff --git a/org.eclipse.rmf.reqif10.search.test/src/org/eclipse/rmf/reqif10/search/test/DateFilterTest.java b/org.eclipse.rmf.reqif10.search.test/src/org/eclipse/rmf/reqif10/search/test/DateFilterTest.java
index c76b193..cf9a434 100644
--- a/org.eclipse.rmf.reqif10.search.test/src/org/eclipse/rmf/reqif10/search/test/DateFilterTest.java
+++ b/org.eclipse.rmf.reqif10.search.test/src/org/eclipse/rmf/reqif10/search/test/DateFilterTest.java
@@ -286,7 +286,7 @@
 		attributeDefinition2.setIdentifier("AD_ID1");
 		
 		filter = new DateFilter(IFilter.Operator.IS_NOT_SET, new GregorianCalendar(2014, 1, 1), null, attributeDefinition2);
-		doMatch(filter, true);
+		doMatch(filter, false);
 	}
 	
 	
diff --git a/org.eclipse.rmf.reqif10.search.test/src/org/eclipse/rmf/reqif10/search/test/EnumFilterDefaultsTest.java b/org.eclipse.rmf.reqif10.search.test/src/org/eclipse/rmf/reqif10/search/test/EnumFilterDefaultsTest.java
index 065d257..4280e1d 100644
--- a/org.eclipse.rmf.reqif10.search.test/src/org/eclipse/rmf/reqif10/search/test/EnumFilterDefaultsTest.java
+++ b/org.eclipse.rmf.reqif10.search.test/src/org/eclipse/rmf/reqif10/search/test/EnumFilterDefaultsTest.java
@@ -54,4 +54,14 @@
 		setFixture(specObject);
 	}
 	
+	@Override
+	public void testIsSet() throws Exception {
+		// super would fail because of the changed fixture
+	}
+
+	@Override
+	public void testIsNotSet() throws Exception {
+		// super would fail because of the changed fixture
+	}	
+	
 }
diff --git a/org.eclipse.rmf.reqif10.search.test/src/org/eclipse/rmf/reqif10/search/test/EnumFilterTest.java b/org.eclipse.rmf.reqif10.search.test/src/org/eclipse/rmf/reqif10/search/test/EnumFilterTest.java
index 97e720d..c70badc 100644
--- a/org.eclipse.rmf.reqif10.search.test/src/org/eclipse/rmf/reqif10/search/test/EnumFilterTest.java
+++ b/org.eclipse.rmf.reqif10.search.test/src/org/eclipse/rmf/reqif10/search/test/EnumFilterTest.java
@@ -178,7 +178,7 @@
 		attributeDefinition2.setIdentifier("AD_ID1");
 		
 		filter = new EnumFilter(IFilter.Operator.IS_NOT_SET, specifiedValues, attributeDefinition2);
-		doMatch(filter, true);
+		doMatch(filter, false);
 	}	
 	
 
diff --git a/org.eclipse.rmf.reqif10.search.test/src/org/eclipse/rmf/reqif10/search/test/IntegerFilterDefaultsTest.java b/org.eclipse.rmf.reqif10.search.test/src/org/eclipse/rmf/reqif10/search/test/IntegerFilterDefaultsTest.java
index 0b06cc0..29b5d92 100644
--- a/org.eclipse.rmf.reqif10.search.test/src/org/eclipse/rmf/reqif10/search/test/IntegerFilterDefaultsTest.java
+++ b/org.eclipse.rmf.reqif10.search.test/src/org/eclipse/rmf/reqif10/search/test/IntegerFilterDefaultsTest.java
@@ -51,4 +51,14 @@
 		setFixture(specObject);
 	}
 
+	@Override
+	public void testIsSet() throws Exception {
+		// super would fail because of the changed fixture
+	}
+
+	@Override
+	public void testIsNotSet() throws Exception {
+		// super would fail because of the changed fixture
+	}
+	
 }
diff --git a/org.eclipse.rmf.reqif10.search.test/src/org/eclipse/rmf/reqif10/search/test/IntegerFilterTest.java b/org.eclipse.rmf.reqif10.search.test/src/org/eclipse/rmf/reqif10/search/test/IntegerFilterTest.java
index 5bbf62c..7eeab00 100644
--- a/org.eclipse.rmf.reqif10.search.test/src/org/eclipse/rmf/reqif10/search/test/IntegerFilterTest.java
+++ b/org.eclipse.rmf.reqif10.search.test/src/org/eclipse/rmf/reqif10/search/test/IntegerFilterTest.java
@@ -141,7 +141,7 @@
 		attributeDefinition2.setIdentifier("AD_ID1");
 		
 		filter = new NumberFilter(Operator.IS_NOT_SET, new BigInteger("2"), null, attributeDefinition2);
-		doMatch(filter, true);
+		doMatch(filter, false);
 	}	
 	
 	
diff --git a/org.eclipse.rmf.reqif10.search.test/src/org/eclipse/rmf/reqif10/search/test/RealFilterDefaultsTest.java b/org.eclipse.rmf.reqif10.search.test/src/org/eclipse/rmf/reqif10/search/test/RealFilterDefaultsTest.java
index c5c5d1c..4313dc9 100644
--- a/org.eclipse.rmf.reqif10.search.test/src/org/eclipse/rmf/reqif10/search/test/RealFilterDefaultsTest.java
+++ b/org.eclipse.rmf.reqif10.search.test/src/org/eclipse/rmf/reqif10/search/test/RealFilterDefaultsTest.java
@@ -56,5 +56,16 @@
 		
 		setFixture(specObject);
 	}
+	
+	
+	@Override
+	public void testIsSet() throws Exception {
+		// super would fail because of the changed fixture
+	}
 
+	@Override
+	public void testIsNotSet() throws Exception {
+		// super would fail because of the changed fixture
+	}
+	
 }
diff --git a/org.eclipse.rmf.reqif10.search.test/src/org/eclipse/rmf/reqif10/search/test/RealFilterTest.java b/org.eclipse.rmf.reqif10.search.test/src/org/eclipse/rmf/reqif10/search/test/RealFilterTest.java
index 813790e..9c48206 100644
--- a/org.eclipse.rmf.reqif10.search.test/src/org/eclipse/rmf/reqif10/search/test/RealFilterTest.java
+++ b/org.eclipse.rmf.reqif10.search.test/src/org/eclipse/rmf/reqif10/search/test/RealFilterTest.java
@@ -141,7 +141,7 @@
 		attributeDefinition2.setIdentifier("AD_ID1");
 		
 		filter = new NumberFilter(Operator.IS_NOT_SET, new Double("2"), null, attributeDefinition2);
-		doMatch(filter, true);
+		doMatch(filter, false);
 	}	
 	
 	
@@ -187,6 +187,7 @@
 		attributeValue.setDefinition(attributeDefinition);
 		
 		if (theValue != null){
+			System.out.println("seeting the value " + theValue);
 			attributeValue.setTheValue(theValue);
 		}
 		
diff --git a/org.eclipse.rmf.reqif10.search.test/src/org/eclipse/rmf/reqif10/search/test/StringFilterDefaultsValueTest.java b/org.eclipse.rmf.reqif10.search.test/src/org/eclipse/rmf/reqif10/search/test/StringFilterDefaultsValueTest.java
index 9ac621b..9206478 100644
--- a/org.eclipse.rmf.reqif10.search.test/src/org/eclipse/rmf/reqif10/search/test/StringFilterDefaultsValueTest.java
+++ b/org.eclipse.rmf.reqif10.search.test/src/org/eclipse/rmf/reqif10/search/test/StringFilterDefaultsValueTest.java
@@ -26,30 +26,6 @@
 		// Do nothing, since this test will fall back on default values 
 	}
 	
-//	@Override
-//	@Test
-//	public void testIsSet() throws Exception {
-//		fail("not yet implemented");
-//	}
-//	
-//	@Override
-//	@Test
-//	public void testNotContains() throws Exception {
-//		fail("not yet implemented");
-//	}
-//	
-//	@Override
-//	@Test
-//	public void testContains() throws Exception {
-//		fail("not yet implemented");
-//	}
-//	
-//	@Override
-//	@Test
-//	public void testIsNotSet() throws Exception {
-//		fail("not yet implemented");
-//	}
-//	
 
 	/**
 	 * Sets the value as the defaultValue.
@@ -87,5 +63,15 @@
 
 	}
 	
+	@Override
+	public void testIsSet() throws Exception {
+		// super would fail because of the changed fixture
+	}
+
+	@Override
+	public void testIsNotSet() throws Exception {
+		// super would fail because of the changed fixture
+	}
+	
 	
 }
diff --git a/org.eclipse.rmf.reqif10.search.test/src/org/eclipse/rmf/reqif10/search/test/StringFilterTest.java b/org.eclipse.rmf.reqif10.search.test/src/org/eclipse/rmf/reqif10/search/test/StringFilterTest.java
index 0cb75d9..bf77a6d 100644
--- a/org.eclipse.rmf.reqif10.search.test/src/org/eclipse/rmf/reqif10/search/test/StringFilterTest.java
+++ b/org.eclipse.rmf.reqif10.search.test/src/org/eclipse/rmf/reqif10/search/test/StringFilterTest.java
@@ -27,6 +27,7 @@
 import org.eclipse.rmf.reqif10.DatatypeDefinitionString;
 import org.eclipse.rmf.reqif10.ReqIF;
 import org.eclipse.rmf.reqif10.ReqIF10Factory;
+import org.eclipse.rmf.reqif10.SpecElementWithAttributes;
 import org.eclipse.rmf.reqif10.SpecObject;
 import org.eclipse.rmf.reqif10.common.util.ReqIF10Util;
 import org.eclipse.rmf.reqif10.search.filter.AbstractTextFilter;
@@ -254,16 +255,46 @@
 		attributeDefinition2.setIdentifier("AD_ID1");
 		
 		filter = new StringFilter(IFilter.Operator.IS_NOT_SET, "",  attributeDefinition2, false);
-		doMatch(filter, true);
+		doMatch(filter, false);
 	}
 	
 	
 	@Test
 	public void isSetInternal() throws Exception {
-		StringFilter filter = new StringFilter(IFilter.Operator.IS_SET, "", AbstractTextFilter.InternalAttribute.DESC, false);
+		StringFilter filter; 
+		
+		filter = new StringFilter(IFilter.Operator.IS_SET, "", AbstractTextFilter.InternalAttribute.DESC, false);
+		doMatch(filter, true);
+		filter = new StringFilter(IFilter.Operator.IS_SET, "", AbstractTextFilter.InternalAttribute.IDENTIFIER, false);
+		doMatch(filter, true);
+		filter = new StringFilter(IFilter.Operator.IS_SET, "", AbstractTextFilter.InternalAttribute.LONG_NAME, false);
 		doMatch(filter, true);
 		
-		fail("write more tests here");
+		filter = new StringFilter(IFilter.Operator.IS_NOT_SET, "", AbstractTextFilter.InternalAttribute.DESC, false);
+		doMatch(filter, false);
+		filter = new StringFilter(IFilter.Operator.IS_NOT_SET, "", AbstractTextFilter.InternalAttribute.IDENTIFIER, false);
+		doMatch(filter, false);
+		filter = new StringFilter(IFilter.Operator.IS_NOT_SET, "", AbstractTextFilter.InternalAttribute.LONG_NAME, false);
+		doMatch(filter, false);
+		
+		SpecElementWithAttributes specObject = getFixture();
+		specObject.setDesc(null);
+		specObject.setLongName(null);
+		specObject.setIdentifier(null);
+		
+		filter = new StringFilter(IFilter.Operator.IS_SET, "", AbstractTextFilter.InternalAttribute.DESC, false);
+		doMatch(filter, false);
+		filter = new StringFilter(IFilter.Operator.IS_SET, "", AbstractTextFilter.InternalAttribute.IDENTIFIER, false);
+		doMatch(filter, false);
+		filter = new StringFilter(IFilter.Operator.IS_SET, "", AbstractTextFilter.InternalAttribute.LONG_NAME, false);
+		doMatch(filter, false);
+		
+		filter = new StringFilter(IFilter.Operator.IS_NOT_SET, "", AbstractTextFilter.InternalAttribute.DESC, false);
+		doMatch(filter, true);
+		filter = new StringFilter(IFilter.Operator.IS_NOT_SET, "", AbstractTextFilter.InternalAttribute.IDENTIFIER, false);
+		doMatch(filter, true);
+		filter = new StringFilter(IFilter.Operator.IS_NOT_SET, "", AbstractTextFilter.InternalAttribute.LONG_NAME, false);
+		doMatch(filter, true);
 	}
 	
 	
diff --git a/org.eclipse.rmf.reqif10.search.test/src/org/eclipse/rmf/reqif10/search/test/XhtmlFilterDefaultsTest.java b/org.eclipse.rmf.reqif10.search.test/src/org/eclipse/rmf/reqif10/search/test/XhtmlFilterDefaultsTest.java
index 7f2f72b..19c3d80 100644
--- a/org.eclipse.rmf.reqif10.search.test/src/org/eclipse/rmf/reqif10/search/test/XhtmlFilterDefaultsTest.java
+++ b/org.eclipse.rmf.reqif10.search.test/src/org/eclipse/rmf/reqif10/search/test/XhtmlFilterDefaultsTest.java
@@ -58,4 +58,15 @@
 		}
 	}
 
+	
+	@Override
+	public void testIsSet() throws Exception {
+		// super would fail because of the changed fixture
+	}
+
+	@Override
+	public void testIsNotSet() throws Exception {
+		// super would fail because of the changed fixture
+	}
+	
 }
diff --git a/org.eclipse.rmf.reqif10.search.test/src/org/eclipse/rmf/reqif10/search/test/XhtmlFilterTest.java b/org.eclipse.rmf.reqif10.search.test/src/org/eclipse/rmf/reqif10/search/test/XhtmlFilterTest.java
index 554d337..5d430f4 100644
--- a/org.eclipse.rmf.reqif10.search.test/src/org/eclipse/rmf/reqif10/search/test/XhtmlFilterTest.java
+++ b/org.eclipse.rmf.reqif10.search.test/src/org/eclipse/rmf/reqif10/search/test/XhtmlFilterTest.java
@@ -131,7 +131,7 @@
 		attributeDefinition2.setIdentifier("AD_ID1");
 		
 		xhtmlFilter = new XhtmlFilter(IFilter.Operator.IS_NOT_SET, "hello",  attributeDefinition2, true);
-		doMatch(xhtmlFilter, true);
+		doMatch(xhtmlFilter, false);
 	}