package com.processpuzzle.fundamental_types.quantity.domain;
import static org.hamcrest.core.Is.is;
import static org.hamcrest.core.IsEqual.equalTo;
import static org.junit.Assert.assertThat;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
import com.processpuzzle.fundamental_types.quantity.domain.Unit;
import com.processpuzzle.sharedfixtures.domaintier.ProcessPuzzleContextFixture;
public class UnitTest {
private static ProcessPuzzleContextFixture context = null;
@BeforeClass
public static void beforeAllTests() {
context = ProcessPuzzleContextFixture.getInstance();
context.setUp();
}
@Test
public final void testAddConversionRatio() {
Unit metre = new Unit("metre", "m");
Unit mm = new Unit("millimetre", "mm");
metre.addConversionRatio(0.001, mm);
assertThat( "Conversation ratio from meter to mm should be: ", 0.001d, equalTo( metre.findConversionRatio(mm) ));
assertThat( "Conversation ratio from mm to meter should be: ", 1000d, equalTo( mm.findConversionRatio(metre) ));
}
@Test
public void equals() {
Unit unit1 = new Unit("metre", "m");
Unit unit2 = new Unit("meter", "m");
assertThat("A unit to another one if their symbols equal", unit1.equals(unit2), is(true));
Unit unit3 = new Unit("centimetre", "cm");
assertThat("A unit to another one if their symbols equal", unit1.equals(unit3), is(false));
}
@AfterClass
public static void afterAllTests() {
context.tearDown();
}
}