package com.manning.hsia.dvdstore.test;
import org.hibernate.search.bridge.StringBridge;
import org.hibernate.search.bridge.TwoWayStringBridge;
import org.testng.annotations.Test;
import com.manning.hsia.dvdstore.bridge.PaddedPriceBridge;
import com.manning.hsia.dvdstore.bridge.PaddedRoundedPriceBridge;
public class BridgeTest {
@Test(groups="ch04")
public void testPaddingAndRounding() {
StringBridge bridge = new PaddedRoundedPriceBridge();
assert "000".equals( bridge.objectToString(0d) ) : "found " + bridge.objectToString(0d);
assert "005".equals( bridge.objectToString(0.5d) );
assert "005".equals( bridge.objectToString(4.9d) );
assert "005".equals( bridge.objectToString(5d) );
assert "010".equals( bridge.objectToString(5.1d) );
}
@Test(groups="ch04")
public void testPadding() {
StringBridge bridge = new PaddedPriceBridge();
assert "000.0".equals( bridge.objectToString(0d) ) : bridge.objectToString(0d);
assert "000.5".equals( bridge.objectToString(0.5d) );
assert "004.9".equals( bridge.objectToString(4.9d) );
assert "005.0".equals( bridge.objectToString(5d) );
assert "005.1".equals( bridge.objectToString(5.1d) );
assert "555.55".equals( bridge.objectToString(555.55d) );
assert bridge.objectToString(5d).compareTo( bridge.objectToString(5.1d) ) < 0;
assert bridge.objectToString(5.01d).compareTo( bridge.objectToString(5.1d) ) < 0;
}
@Test(groups="ch04", expectedExceptions={IllegalArgumentException.class})
public void testOutOfBoundaries() {
StringBridge bridge = new PaddedPriceBridge();
bridge.objectToString(555555.55d);
}
@Test(groups="ch04")
public void testTwoWayStringBridge() {
TwoWayStringBridge bridge = new PaddedPriceBridge();
assert 12.4d == (Double) bridge.stringToObject( bridge.objectToString(12.4d) );
}
}