package com.processpuzzle.fundamental_types.possiblevalue.domain; import static org.hamcrest.core.Is.is; import static org.junit.Assert.assertThat; import org.junit.AfterClass; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; import com.processpuzzle.fundamental_types.quantity.domain.Quantity; import com.processpuzzle.fundamental_types.quantity.domain.Unit; import com.processpuzzle.fundamental_types.quantity.domain.Units; import com.processpuzzle.internalization.domain.ProcessPuzzleLocale; import com.processpuzzle.sharedfixtures.domaintier.ProcessPuzzleContextFixture; public class QuantityEnumerationTest { private Unit decimetre; private QuantityEnumeration sizes; private static ProcessPuzzleLocale hungarianLocale = new ProcessPuzzleLocale("hu"); private static ProcessPuzzleContextFixture context = null; @BeforeClass public static void beforeAllTests() { context = ProcessPuzzleContextFixture.getInstance(); context.setUp(); } @Before public void beforeEachTest() { decimetre = new Unit("decimetre", Units.DECIMETRE); sizes = new QuantityEnumeration(); sizes.addPossibleValue(new Quantity(5, decimetre)); sizes.addPossibleValue(new Quantity(10, decimetre)); sizes.addPossibleValue(new Quantity(15, decimetre)); } @Test public void checkValue_ShouldExamineValueEquality() { //Setup //Verify assertThat(sizes.checkValue( new Quantity(5, decimetre)), is(true)); } @Test public void asText() { assertThat(sizes.asText(hungarianLocale), is("( 5 dm, 10 dm, 15 dm )")); } @Test public void checkValue_ForNegativeOutcome() { assertThat(sizes.checkValue( new Quantity(6, decimetre)), is(false)); } @Test public void stringValue() { assertThat(sizes.stringValue(), is("5.0 dm;10.0 dm;15.0 dm")); } @Test public void parseFromString() { QuantityEnumeration newEnumeration = new QuantityEnumeration(); String possibleValuesDef = "7.25 dm;11.01 dm;50.0 dm"; newEnumeration.parseFromString( newEnumeration, possibleValuesDef ); assertThat(newEnumeration.getValues().size(), is(3)); assertThat(newEnumeration.getValues().contains( new Quantity(Double.valueOf("7.25").doubleValue(), decimetre ) ), is(true)); assertThat(newEnumeration.getValues().contains( new Quantity(Double.valueOf("11.01").doubleValue(), decimetre ) ), is(true)); assertThat(newEnumeration.getValues().contains( new Quantity(Double.valueOf("50.0").doubleValue(), decimetre ) ), is(true)); } @AfterClass public static void afterAllTests() { context.tearDown(); } }