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.internalization.domain.ProcessPuzzleLocale;
import com.processpuzzle.sharedfixtures.domaintier.ProcessPuzzleContextFixture;
public class StringEnumerationTest {
private StringEnumeration enumeration;
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() {
enumeration = new StringEnumeration();
enumeration.addPossibleValue("kék");
enumeration.addPossibleValue("zöld");
enumeration.addPossibleValue("piros");
}
@Test public void checkValue_ShouldExamineValueEquality() {
//Setup
//Verify
assertThat(enumeration.getValues().size(), is(3));
assertThat(enumeration.checkValue("kék"), is(true));
assertThat(enumeration.checkValue("zöld"), is(true));
assertThat(enumeration.checkValue("piros"), is(true));
}
@Test public void asText() {
assertThat(enumeration.asText(hungarianLocale), is("( kék, zöld, piros )"));
}
@Test public void checkValue_ForNegativeOutcome() {
assertThat(enumeration.checkValue( "fekete"), is(false));
}
@Test public void stringValue() {
assertThat(enumeration.stringValue(), is("kék;zöld;piros"));
}
@Test public void parseFromString() {
StringEnumeration newEnumeration = new StringEnumeration();
String possibleValuesDef = "lila;fekete;fehér";
newEnumeration.parseFromString( newEnumeration, possibleValuesDef );
assertThat(newEnumeration.getValues().size(), is(3));
assertThat(newEnumeration.getValues().contains( "lila" ), is(true));
assertThat(newEnumeration.getValues().contains( "fekete" ), is(true));
assertThat(newEnumeration.getValues().contains( "fehér" ), is(true));
}
@AfterClass
public static void afterAllTests() {
context.tearDown();
}
}