package test; import aQute.bnd.osgi.resource.FilterBuilder; import aQute.bnd.version.VersionRange; import junit.framework.TestCase; public class FilterBuilderTest extends TestCase { FilterBuilder fb = new FilterBuilder(); public void testSimple() { fb.eq("a", "b"); assertEquals("(a=b)", fb.toString()); } public void testAnd() { fb.and(); fb.eq("a", "b"); assertEquals("(a=b)", fb.toString()); } public void testOr() { fb.or(); fb.eq("a", "b"); assertEquals("(a=b)", fb.toString()); } public void testAndMultiple() { fb.and(); fb.eq("a", "b"); fb.eq("c", "d"); assertEquals("(&(a=b)(c=d))", fb.toString()); } public void testOrMultiple() { fb.or(); fb.eq("a", "b"); fb.eq("c", "d"); assertEquals("(|(a=b)(c=d))", fb.toString()); } public void testAndOrOrSimple() { fb.and(); fb.or(); fb.eq("a", "b"); fb.eq("c", "d"); fb.end(); fb.or(); fb.eq("e", "f"); fb.eq("g", "h"); fb.end(); fb.eq("i", "j"); fb.neq("k", "l"); assertEquals("(&(|(a=b)(c=d))(|(e=f)(g=h))(i=j)(!(k=l)))", fb.toString()); } public void testGt() { assertEquals("(!(a<=b))", fb.gt("a", "b").toString()); } public void testGe() { assertEquals("(a>=b)", fb.ge("a", "b").toString()); } public void testLe() { assertEquals("(a<=b)", fb.le("a", "b").toString()); } public void testApprox() { assertEquals("(a~=b)", fb.approximate("a", "b").toString()); } public void testPresent() { assertEquals("(a=*)", fb.isPresent("a").toString()); } public void testVersionRange() { assertEquals("(&(version>=1.0.0)(!(version>=2.0.0)))", fb.in("version", new VersionRange("[1,2)")).toString()); fb = new FilterBuilder(); assertEquals("(&(!(version<=1.0.0))(version<=2.0.0))", fb.in("version", new VersionRange("(1,2]")).toString()); } public void testVersionRangeOSGi() { assertEquals("(&(version>=1.0.0)(!(version>=2.0.0)))", fb.in("version", new org.osgi.framework.VersionRange("[1,2)")).toString()); fb = new FilterBuilder(); assertEquals("(&(!(version<=1.0.0))(version<=2.0.0))", fb.in("version", new org.osgi.framework.VersionRange("(1,2]")).toString()); } public void testAOSS() { fb.and(); fb.or(); fb.eq("a", "b"); fb.eq("c", "d"); fb.end(); fb.end(); assertEquals("(|(a=b)(c=d))", fb.toString()); } }