/* * Copyright 2015 Robert von Burg <eitch@eitchnet.ch> * * Licensed 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 li.strolch.model; import static li.strolch.model.ModelGenerator.PARAM_BOOLEAN_ID; import static li.strolch.model.ModelGenerator.PARAM_DATE_ID; import static li.strolch.model.ModelGenerator.PARAM_FLOAT_ID; import static li.strolch.model.ModelGenerator.PARAM_INTEGER_ID; import static li.strolch.model.ModelGenerator.PARAM_LIST_FLOAT_ID; import static li.strolch.model.ModelGenerator.PARAM_LIST_INTEGER_ID; import static li.strolch.model.ModelGenerator.PARAM_LIST_LONG_ID; import static li.strolch.model.ModelGenerator.PARAM_LIST_STRING_ID; import static li.strolch.model.ModelGenerator.PARAM_LONG_ID; import static li.strolch.model.ModelGenerator.PARAM_STRING_ID; import static org.junit.Assert.assertEquals; import li.strolch.model.parameter.Parameter; import org.junit.Test; /** * @author Robert von Burg <eitch@eitchnet.ch> */ public class ModelCompareTest { @Test public void shouldCompareToEqual() { ParameterBag bag1 = ModelGenerator.createParameterBag("@1", "@1", "Test"); ParameterBag bag2 = ModelGenerator.createParameterBag("@1", "@1", "Test"); Parameter<?> param1; Parameter<?> param2; param1 = bag1.getParameter(PARAM_BOOLEAN_ID); param2 = bag2.getParameter(PARAM_BOOLEAN_ID); assertEquals(0, param1.compareTo(param2)); param1 = bag1.getParameter(PARAM_FLOAT_ID); param2 = bag2.getParameter(PARAM_FLOAT_ID); assertEquals(0, param1.compareTo(param2)); param1 = bag1.getParameter(PARAM_INTEGER_ID); param2 = bag2.getParameter(PARAM_INTEGER_ID); assertEquals(0, param1.compareTo(param2)); param1 = bag1.getParameter(PARAM_LONG_ID); param2 = bag2.getParameter(PARAM_LONG_ID); assertEquals(0, param1.compareTo(param2)); param1 = bag1.getParameter(PARAM_STRING_ID); param2 = bag2.getParameter(PARAM_STRING_ID); assertEquals(0, param1.compareTo(param2)); param1 = bag1.getParameter(PARAM_DATE_ID); param2 = bag2.getParameter(PARAM_DATE_ID); assertEquals(0, param1.compareTo(param2)); param1 = bag1.getParameter(PARAM_LIST_STRING_ID); param2 = bag2.getParameter(PARAM_LIST_STRING_ID); assertEquals(0, param1.compareTo(param2)); param1 = bag1.getParameter(PARAM_LIST_INTEGER_ID); param2 = bag2.getParameter(PARAM_LIST_INTEGER_ID); assertEquals(0, param1.compareTo(param2)); param1 = bag1.getParameter(PARAM_LIST_FLOAT_ID); param2 = bag2.getParameter(PARAM_LIST_FLOAT_ID); assertEquals(0, param1.compareTo(param2)); param1 = bag1.getParameter(PARAM_LIST_LONG_ID); param2 = bag2.getParameter(PARAM_LIST_LONG_ID); assertEquals(0, param1.compareTo(param2)); } @Test public void shouldCompareToLessThan() { ParameterBag bag1 = ModelGenerator.createParameterBag("@1", "@1", "Test"); ParameterBag bag2 = ModelGenerator.createParameterBag("@1", "@1", "Test"); Parameter<?> param1; Parameter<?> param2; param1 = bag1.getParameter(PARAM_BOOLEAN_ID); param2 = bag2.getParameter(PARAM_BOOLEAN_ID); param1.setValueFromString(Boolean.FALSE.toString()); assertEquals(-1, param1.compareTo(param2)); param1 = bag1.getParameter(PARAM_FLOAT_ID); param2 = bag2.getParameter(PARAM_FLOAT_ID); param1.setValueFromString("-10.123"); assertEquals(-1, param1.compareTo(param2)); param1 = bag1.getParameter(PARAM_INTEGER_ID); param2 = bag2.getParameter(PARAM_INTEGER_ID); param1.setValueFromString("-10"); assertEquals(-1, param1.compareTo(param2)); param1 = bag1.getParameter(PARAM_LONG_ID); param2 = bag2.getParameter(PARAM_LONG_ID); param1.setValueFromString("-10876543"); assertEquals(-1, param1.compareTo(param2)); param1 = bag1.getParameter(PARAM_STRING_ID); param2 = bag2.getParameter(PARAM_STRING_ID); param1.setValueFromString("a"); assertEquals(-18, param1.compareTo(param2)); param1 = bag1.getParameter(PARAM_DATE_ID); param2 = bag2.getParameter(PARAM_DATE_ID); param1.setValueFromString("1970-01-01T00:00:00.000Z"); assertEquals(-1, param1.compareTo(param2)); param1 = bag1.getParameter(PARAM_LIST_STRING_ID); param2 = bag2.getParameter(PARAM_LIST_STRING_ID); param1.setValueFromString(""); assertEquals(-1, param1.compareTo(param2)); param1 = bag1.getParameter(PARAM_LIST_INTEGER_ID); param2 = bag2.getParameter(PARAM_LIST_INTEGER_ID); param1.setValueFromString("1"); assertEquals(-1, param1.compareTo(param2)); param1 = bag1.getParameter(PARAM_LIST_FLOAT_ID); param2 = bag2.getParameter(PARAM_LIST_FLOAT_ID); param1.setValueFromString("1.0"); assertEquals(-1, param1.compareTo(param2)); param1 = bag1.getParameter(PARAM_LIST_LONG_ID); param2 = bag2.getParameter(PARAM_LIST_LONG_ID); param1.setValueFromString("10"); assertEquals(-1, param1.compareTo(param2)); } @Test public void shouldCompareToGreaterThan() { ParameterBag bag1 = ModelGenerator.createParameterBag("@1", "@1", "Test"); ParameterBag bag2 = ModelGenerator.createParameterBag("@1", "@1", "Test"); Parameter<?> param1; Parameter<?> param2; param1 = bag1.getParameter(PARAM_BOOLEAN_ID); param2 = bag2.getParameter(PARAM_BOOLEAN_ID); param2.setValueFromString(Boolean.FALSE.toString()); assertEquals(1, param1.compareTo(param2)); param1 = bag1.getParameter(PARAM_FLOAT_ID); param2 = bag2.getParameter(PARAM_FLOAT_ID); param2.setValueFromString("-10.123"); assertEquals(1, param1.compareTo(param2)); param1 = bag1.getParameter(PARAM_INTEGER_ID); param2 = bag2.getParameter(PARAM_INTEGER_ID); param2.setValueFromString("-10"); assertEquals(1, param1.compareTo(param2)); param1 = bag1.getParameter(PARAM_LONG_ID); param2 = bag2.getParameter(PARAM_LONG_ID); param2.setValueFromString("-10876543"); assertEquals(1, param1.compareTo(param2)); param1 = bag1.getParameter(PARAM_STRING_ID); param2 = bag2.getParameter(PARAM_STRING_ID); param2.setValueFromString("a"); assertEquals(18, param1.compareTo(param2)); param1 = bag1.getParameter(PARAM_DATE_ID); param2 = bag2.getParameter(PARAM_DATE_ID); param2.setValueFromString("1970-01-01T00:00:00.000Z"); assertEquals(1, param1.compareTo(param2)); param1 = bag1.getParameter(PARAM_LIST_STRING_ID); param2 = bag2.getParameter(PARAM_LIST_STRING_ID); param2.setValueFromString(""); assertEquals(1, param1.compareTo(param2)); param1 = bag1.getParameter(PARAM_LIST_INTEGER_ID); param2 = bag2.getParameter(PARAM_LIST_INTEGER_ID); param2.setValueFromString("1"); assertEquals(1, param1.compareTo(param2)); param1 = bag1.getParameter(PARAM_LIST_FLOAT_ID); param2 = bag2.getParameter(PARAM_LIST_FLOAT_ID); param2.setValueFromString("1.0"); assertEquals(1, param1.compareTo(param2)); param1 = bag1.getParameter(PARAM_LIST_LONG_ID); param2 = bag2.getParameter(PARAM_LIST_LONG_ID); param2.setValueFromString("10"); assertEquals(1, param1.compareTo(param2)); } }