/** * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.apache.ambari.server.controller.utilities; import org.apache.ambari.server.controller.internal.ResourceImpl; import org.apache.ambari.server.controller.spi.Predicate; import org.apache.ambari.server.controller.spi.Resource; import org.junit.Test; import junit.framework.Assert; /** * */ public class PredicateBuilderTest { @Test public void testSimple() { String p1 = PropertyHelper.getPropertyId("cat1", "prop1"); Resource resource = new ResourceImpl(Resource.Type.Cluster); resource.setProperty(p1, "foo"); PredicateBuilder pb = new PredicateBuilder(); Predicate predicate1 = pb.property(p1).equals("foo").toPredicate(); Assert.assertTrue(predicate1.evaluate(resource)); PredicateBuilder pb2 = new PredicateBuilder(); Predicate predicate2 = pb2.property(p1).equals("bar").toPredicate(); Assert.assertFalse(predicate2.evaluate(resource)); } @Test public void testSimpleNot() { String p1 = PropertyHelper.getPropertyId("cat1", "prop1"); Resource resource = new ResourceImpl(Resource.Type.Cluster); resource.setProperty(p1, "foo"); /* ! p1 == "foo" */ PredicateBuilder pb = new PredicateBuilder(); Predicate predicate1 = pb.not().property(p1).equals("foo").toPredicate(); Assert.assertFalse(predicate1.evaluate(resource)); /* ! p1 == "bar" */ PredicateBuilder pb2 = new PredicateBuilder(); Predicate predicate2 = pb2.not().property(p1).equals("bar").toPredicate(); Assert.assertTrue(predicate2.evaluate(resource)); } @Test public void testDone() { String p1 = PropertyHelper.getPropertyId("cat1", "prop1"); Resource resource = new ResourceImpl(Resource.Type.Cluster); resource.setProperty(p1, "foo"); PredicateBuilder pb = new PredicateBuilder(); Predicate predicate = pb.property(p1).equals("foo").toPredicate(); // can't reuse a builder after toPredicate is called. try { pb.property(p1).equals("foo").toPredicate(); Assert.fail("Expected IllegalStateException."); } catch (IllegalStateException e) { // expected } Assert.assertSame(predicate, pb.toPredicate()); } @Test public void testSimpleAnd() { String p1 = PropertyHelper.getPropertyId("cat1", "prop1"); String p2 = PropertyHelper.getPropertyId("cat1", "prop2"); Resource resource = new ResourceImpl(Resource.Type.Cluster); resource.setProperty(p1, "foo"); resource.setProperty(p2, "bar"); PredicateBuilder pb = new PredicateBuilder(); Predicate predicate1 = pb.property(p1).equals("foo").and().property(p2).equals("bar").toPredicate(); Assert.assertTrue(predicate1.evaluate(resource)); PredicateBuilder pb2 = new PredicateBuilder(); Predicate predicate2 = pb2.property(p1).equals("foo").and().property(p2).equals("car").toPredicate(); Assert.assertFalse(predicate2.evaluate(resource)); } @Test public void testSimpleAndNot() { String p1 = PropertyHelper.getPropertyId("cat1", "prop1"); String p2 = PropertyHelper.getPropertyId("cat1", "prop2"); Resource resource = new ResourceImpl(Resource.Type.Cluster); resource.setProperty(p1, "foo"); resource.setProperty(p2, "bar"); /* p1 == foo and !p2 == bar */ PredicateBuilder pb = new PredicateBuilder(); Predicate predicate1 = pb.property(p1).equals("foo").and().not().property(p2).equals("bar").toPredicate(); Assert.assertFalse(predicate1.evaluate(resource)); /* p1 == foo and !p2 == car */ PredicateBuilder pb2 = new PredicateBuilder(); Predicate predicate2 = pb2.property(p1).equals("foo").and().not().property(p2).equals("car").toPredicate(); Assert.assertTrue(predicate2.evaluate(resource)); } @Test public void testLongAnd() { String p1 = PropertyHelper.getPropertyId("cat1", "prop1"); String p2 = PropertyHelper.getPropertyId("cat1", "prop2"); String p3 = PropertyHelper.getPropertyId("cat1", "prop3"); String p4 = PropertyHelper.getPropertyId("cat1", "prop4"); Resource resource = new ResourceImpl(Resource.Type.Cluster); resource.setProperty(p1, "foo"); resource.setProperty(p2, "bar"); resource.setProperty(p3, "cat"); resource.setProperty(p4, "dog"); PredicateBuilder pb = new PredicateBuilder(); Predicate predicate1 = pb.property(p1).equals("foo").and().property(p2).equals("bar").and().property(p3).equals("cat").and().property(p4).equals("dog").toPredicate(); Assert.assertTrue(predicate1.evaluate(resource)); PredicateBuilder pb2 = new PredicateBuilder(); Predicate predicate2 = pb2.property(p1).equals("foo").and().property(p2).equals("bar").and().property(p3).equals("cat").and().property(p4).equals("dot").toPredicate(); Assert.assertFalse(predicate2.evaluate(resource)); } @Test public void testSimpleOr() { String p1 = PropertyHelper.getPropertyId("cat1", "prop1"); String p2 = PropertyHelper.getPropertyId("cat1", "prop2"); Resource resource = new ResourceImpl(Resource.Type.Cluster); resource.setProperty(p1, "foo"); resource.setProperty(p2, "bar"); PredicateBuilder pb = new PredicateBuilder(); Predicate predicate1 = pb.property(p1).equals("foo").or().property(p2).equals("bar").toPredicate(); Assert.assertTrue(predicate1.evaluate(resource)); PredicateBuilder pb2 = new PredicateBuilder(); Predicate predicate2 = pb2.property(p1).equals("foo").or().property(p2).equals("car").toPredicate(); Assert.assertTrue(predicate2.evaluate(resource)); PredicateBuilder pb3 = new PredicateBuilder(); Predicate predicate3 = pb3.property(p1).equals("fun").or().property(p2).equals("car").toPredicate(); Assert.assertFalse(predicate3.evaluate(resource)); } @Test public void testLongOr() { String p1 = PropertyHelper.getPropertyId("cat1", "prop1"); String p2 = PropertyHelper.getPropertyId("cat1", "prop2"); String p3 = PropertyHelper.getPropertyId("cat1", "prop3"); String p4 = PropertyHelper.getPropertyId("cat1", "prop4"); Resource resource = new ResourceImpl(Resource.Type.Cluster); resource.setProperty(p1, "foo"); resource.setProperty(p2, "bar"); resource.setProperty(p3, "cat"); resource.setProperty(p4, "dog"); PredicateBuilder pb = new PredicateBuilder(); Predicate predicate1 = pb.property(p1).equals("foo").or().property(p2).equals("bar").or().property(p3).equals("cat").or().property(p4).equals("dog").toPredicate(); Assert.assertTrue(predicate1.evaluate(resource)); PredicateBuilder pb2 = new PredicateBuilder(); Predicate predicate2 = pb2.property(p1).equals("foo").or().property(p2).equals("car").or().property(p3).equals("cat").or().property(p4).equals("dog").toPredicate(); Assert.assertTrue(predicate2.evaluate(resource)); PredicateBuilder pb3 = new PredicateBuilder(); Predicate predicate3 = pb3.property(p1).equals("fun").or().property(p2).equals("car").or().property(p3).equals("bat").or().property(p4).equals("dot").toPredicate(); Assert.assertFalse(predicate3.evaluate(resource)); } @Test public void testAndOr() { String p1 = PropertyHelper.getPropertyId("cat1", "prop1"); String p2 = PropertyHelper.getPropertyId("cat1", "prop2"); String p3 = PropertyHelper.getPropertyId("cat1", "prop3"); Resource resource = new ResourceImpl(Resource.Type.Cluster); resource.setProperty(p1, "foo"); resource.setProperty(p2, "bar"); resource.setProperty(p3, "cat"); PredicateBuilder pb1 = new PredicateBuilder(); Predicate predicate1 = pb1.property(p1).equals("foo").and().property(p2).equals("bar").or().property(p3).equals("cat").toPredicate(); Assert.assertTrue(predicate1.evaluate(resource)); PredicateBuilder pb2 = new PredicateBuilder(); Predicate predicate2 = pb2.property(p1).equals("foo").and().property(p2).equals("car").or().property(p3).equals("cat").toPredicate(); Assert.assertTrue(predicate2.evaluate(resource)); PredicateBuilder pb3 = new PredicateBuilder(); Predicate predicate3 = pb3.property(p1).equals("foo").and().property(p2).equals("bar").or().property(p3).equals("can").toPredicate(); Assert.assertTrue(predicate3.evaluate(resource)); PredicateBuilder pb4 = new PredicateBuilder(); Predicate predicate4 = pb4.property(p1).equals("foo").and().property(p2).equals("bat").or().property(p3).equals("can").toPredicate(); Assert.assertFalse(predicate4.evaluate(resource)); } @Test public void testBlocks() { String p1 = PropertyHelper.getPropertyId("cat1", "prop1"); String p2 = PropertyHelper.getPropertyId("cat1", "prop2"); String p3 = PropertyHelper.getPropertyId("cat1", "prop3"); Resource resource = new ResourceImpl(Resource.Type.Cluster); resource.setProperty(p1, "foo"); resource.setProperty(p2, "bar"); resource.setProperty(p3, "cat"); /* (p1==foo && p2==bar) || p3 == cat */ PredicateBuilder pb1 = new PredicateBuilder(); Predicate predicate1 = pb1.begin().property(p1).equals("foo").and().property(p2).equals("bar").end().or().property(p3).equals("cat").toPredicate(); Assert.assertTrue(predicate1.evaluate(resource)); /* (p1==foo && p2==bat) || p3 == cat */ PredicateBuilder pb2 = new PredicateBuilder(); Predicate predicate2 = pb2.begin().property(p1).equals("foo").and().property(p2).equals("bat").end().or().property(p3).equals("cat").toPredicate(); Assert.assertTrue(predicate2.evaluate(resource)); /* (p1==foo && p2==bar) || p3 == can */ PredicateBuilder pb3 = new PredicateBuilder(); Predicate predicate3 = pb3.begin().property(p1).equals("foo").and().property(p2).equals("bar").end().or().property(p3).equals("can").toPredicate(); Assert.assertTrue(predicate3.evaluate(resource)); /* (p1==foo && p2==bat) || p3 == can */ PredicateBuilder pb4 = new PredicateBuilder(); Predicate predicate4 = pb4.begin().property(p1).equals("foo").and().property(p2).equals("bat").end().or().property(p3).equals("can").toPredicate(); Assert.assertFalse(predicate4.evaluate(resource)); /* p1==foo && (p2==bar || p3 == cat) */ PredicateBuilder pb5 = new PredicateBuilder(); Predicate predicate5 = pb5.property(p1).equals("foo").and().begin().property(p2).equals("bar").or().property(p3).equals("cat").end().toPredicate(); Assert.assertTrue(predicate5.evaluate(resource)); /* p1==foo && (p2==bat || p3 == cat) */ PredicateBuilder pb6 = new PredicateBuilder(); Predicate predicate6 = pb6.property(p1).equals("foo").and().begin().property(p2).equals("bat").or().property(p3).equals("cat").end().toPredicate(); Assert.assertTrue(predicate6.evaluate(resource)); /* p1==foo && (p2==bat || p3 == can) */ PredicateBuilder pb7 = new PredicateBuilder(); Predicate predicate7 = pb7.property(p1).equals("foo").and().begin().property(p2).equals("bat").or().property(p3).equals("can").end().toPredicate(); Assert.assertFalse(predicate7.evaluate(resource)); /* p1==fat && (p2==bar || p3 == cat) */ PredicateBuilder pb8 = new PredicateBuilder(); Predicate predicate8 = pb8.property(p1).equals("fat").and().begin().property(p2).equals("bar").or().property(p3).equals("cat").end().toPredicate(); Assert.assertFalse(predicate8.evaluate(resource)); /* p1==foo && !(p2==bar || p3 == cat) */ PredicateBuilder pb9 = new PredicateBuilder(); Predicate predicate9 = pb9.property(p1).equals("foo").and().not().begin().property(p2).equals("bar").or().property(p3).equals("cat").end().toPredicate(); Assert.assertFalse(predicate9.evaluate(resource)); /* p1==foo && !(p2==bat || p3 == car) */ PredicateBuilder pb10 = new PredicateBuilder(); Predicate predicate10 = pb10.property(p1).equals("foo").and().not().begin().property(p2).equals("bat").or().property(p3).equals("car").end().toPredicate(); Assert.assertTrue(predicate10.evaluate(resource)); } @Test public void testNestedBlocks() { String p1 = PropertyHelper.getPropertyId("cat1", "prop1"); String p2 = PropertyHelper.getPropertyId("cat1", "prop2"); String p3 = PropertyHelper.getPropertyId("cat1", "prop3"); String p4 = PropertyHelper.getPropertyId("cat1", "prop4"); Resource resource = new ResourceImpl(Resource.Type.Cluster); resource.setProperty(p1, "foo"); resource.setProperty(p2, "bar"); resource.setProperty(p3, "cat"); resource.setProperty(p4, "dog"); /* (p1==foo && (p2==bar || p3==cat)) || p4 == dog */ PredicateBuilder pb1 = new PredicateBuilder(); Predicate predicate1 = pb1. begin(). property(p1).equals("foo").and(). begin(). property(p2).equals("bar").or().property(p3).equals("cat"). end(). end(). or().property(p4).equals("dog").toPredicate(); Assert.assertTrue(predicate1.evaluate(resource)); /* (p1==fat && (p2==bar || p3==cat)) || p4 == dot */ PredicateBuilder pb2 = new PredicateBuilder(); Predicate predicate2 = pb2. begin(). property(p1).equals("fat").and(). begin(). property(p2).equals("bar").or().property(p3).equals("cat"). end(). end(). or().property(p4).equals("dot").toPredicate(); Assert.assertFalse(predicate2.evaluate(resource)); } @Test public void testUnbalancedBlocks() { String p1 = PropertyHelper.getPropertyId("cat1", "prop1"); String p2 = PropertyHelper.getPropertyId("cat1", "prop2"); String p3 = PropertyHelper.getPropertyId("cat1", "prop3"); String p4 = PropertyHelper.getPropertyId("cat1", "prop4"); Resource resource = new ResourceImpl(Resource.Type.Cluster); resource.setProperty(p1, "foo"); resource.setProperty(p2, "bar"); resource.setProperty(p3, "cat"); resource.setProperty(p4, "dog"); /* (p1==foo && (p2==bar || p3==cat) || p4 == dog */ PredicateBuilder pb1 = new PredicateBuilder(); try { pb1. begin(). property(p1).equals("foo").and(). begin(). property(p2).equals("bar").or().property(p3).equals("cat"). end(). or().property(p4).equals("dog").toPredicate(); Assert.fail("Expected IllegalStateException."); } catch (IllegalStateException e) { // expected } /* (p1==foo && p2==bar || p3==cat)) || p4 == dog */ PredicateBuilder pb2 = new PredicateBuilder(); try { pb2. begin(). property(p1).equals("foo").and(). property(p2).equals("bar").or().property(p3).equals("cat"). end(). end(). or().property(p4).equals("dog").toPredicate(); Assert.fail("Expected IllegalStateException."); } catch (IllegalStateException e) { // expected } } @Test public void testAltProperty() { String p1 = "cat1/prop1"; String p2 = "cat1/prop2"; String p3 = "prop3"; Resource resource = new ResourceImpl(Resource.Type.Cluster); resource.setProperty(p1, "foo"); resource.setProperty(p2, "bar"); resource.setProperty(p3, "cat"); /* (p1==foo && p2==bar) || p3 == cat */ PredicateBuilder pb1 = new PredicateBuilder(); Predicate predicate1 = pb1.begin().property("cat1/prop1").equals("foo").and().property("cat1/prop2").equals("bar").end().or().property("prop3").equals("cat").toPredicate(); Assert.assertTrue(predicate1.evaluate(resource)); } @Test public void testEqualsString() { String p1 = PropertyHelper.getPropertyId("cat1", "prop1"); Resource resource = new ResourceImpl(Resource.Type.Cluster); resource.setProperty(p1, "foo"); PredicateBuilder pb = new PredicateBuilder(); Predicate predicate1 = pb.property(p1).equals("foo").toPredicate(); Assert.assertTrue(predicate1.evaluate(resource)); PredicateBuilder pb2 = new PredicateBuilder(); Predicate predicate2 = pb2.property(p1).equals("bar").toPredicate(); Assert.assertFalse(predicate2.evaluate(resource)); } @Test public void testEqualsInteger() { String p1 = PropertyHelper.getPropertyId("cat1", "prop1"); Resource resource = new ResourceImpl(Resource.Type.Cluster); resource.setProperty(p1, 1); PredicateBuilder pb = new PredicateBuilder(); Predicate predicate1 = pb.property(p1).equals(1).toPredicate(); Assert.assertTrue(predicate1.evaluate(resource)); PredicateBuilder pb2 = new PredicateBuilder(); Predicate predicate2 = pb2.property(p1).equals(99).toPredicate(); Assert.assertFalse(predicate2.evaluate(resource)); } @Test public void testEqualsFloat() { String p1 = PropertyHelper.getPropertyId("cat1", "prop1"); Resource resource = new ResourceImpl(Resource.Type.Cluster); resource.setProperty(p1, (float) 1); PredicateBuilder pb = new PredicateBuilder(); Predicate predicate1 = pb.property(p1).equals(Float.valueOf(1)).toPredicate(); Assert.assertTrue(predicate1.evaluate(resource)); PredicateBuilder pb2 = new PredicateBuilder(); Predicate predicate2 = pb2.property(p1).equals(Float.valueOf(99)).toPredicate(); Assert.assertFalse(predicate2.evaluate(resource)); } @Test public void testEqualsDouble() { String p1 = PropertyHelper.getPropertyId("cat1", "prop1"); Resource resource = new ResourceImpl(Resource.Type.Cluster); resource.setProperty(p1, 1.999); PredicateBuilder pb = new PredicateBuilder(); Predicate predicate1 = pb.property(p1).equals(Double.valueOf(1.999)).toPredicate(); Assert.assertTrue(predicate1.evaluate(resource)); PredicateBuilder pb2 = new PredicateBuilder(); Predicate predicate2 = pb2.property(p1).equals(Double.valueOf(99.998)).toPredicate(); Assert.assertFalse(predicate2.evaluate(resource)); } @Test public void testEqualsLong() { String p1 = PropertyHelper.getPropertyId("cat1", "prop1"); Resource resource = new ResourceImpl(Resource.Type.Cluster); resource.setProperty(p1, 1L); PredicateBuilder pb = new PredicateBuilder(); Predicate predicate1 = pb.property(p1).equals(1L).toPredicate(); Assert.assertTrue(predicate1.evaluate(resource)); PredicateBuilder pb2 = new PredicateBuilder(); Predicate predicate2 = pb2.property(p1).equals(99L).toPredicate(); Assert.assertFalse(predicate2.evaluate(resource)); } @Test public void testGreaterInteger() { String p1 = PropertyHelper.getPropertyId("cat1", "prop1"); Resource resource = new ResourceImpl(Resource.Type.Cluster); resource.setProperty(p1, 2); PredicateBuilder pb = new PredicateBuilder(); Predicate predicate1 = pb.property(p1).greaterThan(1).toPredicate(); Assert.assertTrue(predicate1.evaluate(resource)); PredicateBuilder pb2 = new PredicateBuilder(); Predicate predicate2 = pb2.property(p1).greaterThan(99).toPredicate(); Assert.assertFalse(predicate2.evaluate(resource)); } @Test public void testGreaterFloat() { String p1 = PropertyHelper.getPropertyId("cat1", "prop1"); Resource resource = new ResourceImpl(Resource.Type.Cluster); resource.setProperty(p1, (float) 2); PredicateBuilder pb = new PredicateBuilder(); Predicate predicate1 = pb.property(p1).greaterThan((float) 1).toPredicate(); Assert.assertTrue(predicate1.evaluate(resource)); PredicateBuilder pb2 = new PredicateBuilder(); Predicate predicate2 = pb2.property(p1).greaterThan((float) 99).toPredicate(); Assert.assertFalse(predicate2.evaluate(resource)); } @Test public void testGreaterDouble() { String p1 = PropertyHelper.getPropertyId("cat1", "prop1"); Resource resource = new ResourceImpl(Resource.Type.Cluster); resource.setProperty(p1, 2.999); PredicateBuilder pb = new PredicateBuilder(); Predicate predicate1 = pb.property(p1).greaterThan(1.999).toPredicate(); Assert.assertTrue(predicate1.evaluate(resource)); PredicateBuilder pb2 = new PredicateBuilder(); Predicate predicate2 = pb2.property(p1).greaterThan(99.998).toPredicate(); Assert.assertFalse(predicate2.evaluate(resource)); } @Test public void testGreaterLong() { String p1 = PropertyHelper.getPropertyId("cat1", "prop1"); Resource resource = new ResourceImpl(Resource.Type.Cluster); resource.setProperty(p1, 2L); PredicateBuilder pb = new PredicateBuilder(); Predicate predicate1 = pb.property(p1).greaterThan(1L).toPredicate(); Assert.assertTrue(predicate1.evaluate(resource)); PredicateBuilder pb2 = new PredicateBuilder(); Predicate predicate2 = pb2.property(p1).greaterThan(99L).toPredicate(); Assert.assertFalse(predicate2.evaluate(resource)); } @Test public void testGreaterThanEqualToInteger() { String p1 = PropertyHelper.getPropertyId("cat1", "prop1"); Resource resource = new ResourceImpl(Resource.Type.Cluster); resource.setProperty(p1, 2); PredicateBuilder pb = new PredicateBuilder(); Predicate predicate1 = pb.property(p1).greaterThanEqualTo(1).toPredicate(); Assert.assertTrue(predicate1.evaluate(resource)); PredicateBuilder pb2 = new PredicateBuilder(); Predicate predicate2 = pb2.property(p1).greaterThanEqualTo(99).toPredicate(); Assert.assertFalse(predicate2.evaluate(resource)); } @Test public void testGreaterThanEqualToFloat() { String p1 = PropertyHelper.getPropertyId("cat1", "prop1"); Resource resource = new ResourceImpl(Resource.Type.Cluster); resource.setProperty(p1, (float) 2); PredicateBuilder pb = new PredicateBuilder(); Predicate predicate1 = pb.property(p1).greaterThanEqualTo((float) 1).toPredicate(); Assert.assertTrue(predicate1.evaluate(resource)); PredicateBuilder pb2 = new PredicateBuilder(); Predicate predicate2 = pb2.property(p1).greaterThanEqualTo((float) 99).toPredicate(); Assert.assertFalse(predicate2.evaluate(resource)); } @Test public void testGreaterThanEqualToDouble() { String p1 = PropertyHelper.getPropertyId("cat1", "prop1"); Resource resource = new ResourceImpl(Resource.Type.Cluster); resource.setProperty(p1, 2.999); PredicateBuilder pb = new PredicateBuilder(); Predicate predicate1 = pb.property(p1).greaterThanEqualTo(1.999).toPredicate(); Assert.assertTrue(predicate1.evaluate(resource)); PredicateBuilder pb2 = new PredicateBuilder(); Predicate predicate2 = pb2.property(p1).greaterThanEqualTo(99.998).toPredicate(); Assert.assertFalse(predicate2.evaluate(resource)); } @Test public void testGreaterThanEqualToLong() { String p1 = PropertyHelper.getPropertyId("cat1", "prop1"); Resource resource = new ResourceImpl(Resource.Type.Cluster); resource.setProperty(p1, 2L); PredicateBuilder pb = new PredicateBuilder(); Predicate predicate1 = pb.property(p1).greaterThanEqualTo(1L).toPredicate(); Assert.assertTrue(predicate1.evaluate(resource)); PredicateBuilder pb2 = new PredicateBuilder(); Predicate predicate2 = pb2.property(p1).greaterThanEqualTo(99L).toPredicate(); Assert.assertFalse(predicate2.evaluate(resource)); } @Test public void testLessInteger() { String p1 = PropertyHelper.getPropertyId("cat1", "prop1"); Resource resource = new ResourceImpl(Resource.Type.Cluster); resource.setProperty(p1, 2); PredicateBuilder pb = new PredicateBuilder(); Predicate predicate1 = pb.property(p1).lessThan(99).toPredicate(); Assert.assertTrue(predicate1.evaluate(resource)); PredicateBuilder pb2 = new PredicateBuilder(); Predicate predicate2 = pb2.property(p1).lessThan(1).toPredicate(); Assert.assertFalse(predicate2.evaluate(resource)); } @Test public void testLessFloat() { String p1 = PropertyHelper.getPropertyId("cat1", "prop1"); Resource resource = new ResourceImpl(Resource.Type.Cluster); resource.setProperty(p1, (float) 2); PredicateBuilder pb = new PredicateBuilder(); Predicate predicate1 = pb.property(p1).lessThan((float) 99).toPredicate(); Assert.assertTrue(predicate1.evaluate(resource)); PredicateBuilder pb2 = new PredicateBuilder(); Predicate predicate2 = pb2.property(p1).lessThan((float) 1).toPredicate(); Assert.assertFalse(predicate2.evaluate(resource)); } @Test public void testLessDouble() { String p1 = PropertyHelper.getPropertyId("cat1", "prop1"); Resource resource = new ResourceImpl(Resource.Type.Cluster); resource.setProperty(p1, 2.999); PredicateBuilder pb = new PredicateBuilder(); Predicate predicate1 = pb.property(p1).lessThan(99.999).toPredicate(); Assert.assertTrue(predicate1.evaluate(resource)); PredicateBuilder pb2 = new PredicateBuilder(); Predicate predicate2 = pb2.property(p1).lessThan(1.998).toPredicate(); Assert.assertFalse(predicate2.evaluate(resource)); } @Test public void testLessLong() { String p1 = PropertyHelper.getPropertyId("cat1", "prop1"); Resource resource = new ResourceImpl(Resource.Type.Cluster); resource.setProperty(p1, 2L); PredicateBuilder pb = new PredicateBuilder(); Predicate predicate1 = pb.property(p1).lessThan(99L).toPredicate(); Assert.assertTrue(predicate1.evaluate(resource)); PredicateBuilder pb2 = new PredicateBuilder(); Predicate predicate2 = pb2.property(p1).lessThan(1L).toPredicate(); Assert.assertFalse(predicate2.evaluate(resource)); } @Test public void testLessThanEqualToInteger() { String p1 = PropertyHelper.getPropertyId("cat1", "prop1"); Resource resource = new ResourceImpl(Resource.Type.Cluster); resource.setProperty(p1, 2); PredicateBuilder pb = new PredicateBuilder(); Predicate predicate1 = pb.property(p1).lessThanEqualTo(99).toPredicate(); Assert.assertTrue(predicate1.evaluate(resource)); PredicateBuilder pb2 = new PredicateBuilder(); Predicate predicate2 = pb2.property(p1).lessThanEqualTo(1).toPredicate(); Assert.assertFalse(predicate2.evaluate(resource)); } @Test public void testLessThanEqualToFloat() { String p1 = PropertyHelper.getPropertyId("cat1", "prop1"); Resource resource = new ResourceImpl(Resource.Type.Cluster); resource.setProperty(p1, (float) 2); PredicateBuilder pb = new PredicateBuilder(); Predicate predicate1 = pb.property(p1).lessThanEqualTo((float) 99).toPredicate(); Assert.assertTrue(predicate1.evaluate(resource)); PredicateBuilder pb2 = new PredicateBuilder(); Predicate predicate2 = pb2.property(p1).lessThanEqualTo((float) 1).toPredicate(); Assert.assertFalse(predicate2.evaluate(resource)); } @Test public void testLessThanEqualToDouble() { String p1 = PropertyHelper.getPropertyId("cat1", "prop1"); Resource resource = new ResourceImpl(Resource.Type.Cluster); resource.setProperty(p1, 2.999); PredicateBuilder pb = new PredicateBuilder(); Predicate predicate1 = pb.property(p1).lessThanEqualTo(99.999).toPredicate(); Assert.assertTrue(predicate1.evaluate(resource)); PredicateBuilder pb2 = new PredicateBuilder(); Predicate predicate2 = pb2.property(p1).lessThanEqualTo(1.998).toPredicate(); Assert.assertFalse(predicate2.evaluate(resource)); } @Test public void testLessThanEqualToLong() { String p1 = PropertyHelper.getPropertyId("cat1", "prop1"); Resource resource = new ResourceImpl(Resource.Type.Cluster); resource.setProperty(p1, 2L); PredicateBuilder pb = new PredicateBuilder(); Predicate predicate1 = pb.property(p1).lessThanEqualTo(99L).toPredicate(); Assert.assertTrue(predicate1.evaluate(resource)); PredicateBuilder pb2 = new PredicateBuilder(); Predicate predicate2 = pb2.property(p1).lessThanEqualTo(1L).toPredicate(); Assert.assertFalse(predicate2.evaluate(resource)); } }