package org.marketcetera.util.ws.wrappers;
import org.apache.commons.lang.ArrayUtils;
import org.apache.commons.lang.StringUtils;
import org.junit.Test;
import static org.junit.Assert.*;
import static org.marketcetera.util.test.UnicodeData.*;
/**
* @author tlerios@marketcetera.com
* @since 1.0.0
* @version $Id: DualWrapperTest.java 16154 2012-07-14 16:34:05Z colin $
*/
/* $License$ */
public class DualWrapperTest
extends WrapperTestBase
{
private static final class TestWrapper
extends DualWrapper<String,byte[]>
{
public TestWrapper
(String value)
{
super(value);
}
public TestWrapper() {}
@Override
protected void toRaw()
{
if (getMarshalled().length==0) {
setRawOnly(null);
} else {
setRawOnly(new String(getMarshalled()));
}
}
@Override
protected void toMarshalled()
{
if (StringUtils.EMPTY.equals(getRaw())) {
setMarshalledOnly(null);
} else {
setMarshalledOnly(getRaw().getBytes());
}
}
}
@Test
public void all()
throws Exception
{
dual(new TestWrapper(TEST_VALUE),
new TestWrapper(TEST_VALUE),
new TestWrapper(),
new TestWrapper(null),
TEST_VALUE,
HELLO_EN,HELLO_EN_NAT);
TestWrapper wrapper=new TestWrapper(TEST_VALUE);
assertEquals(TEST_VALUE,wrapper.getRaw());
wrapper.setMarshalled(ArrayUtils.EMPTY_BYTE_ARRAY);
assertNull(wrapper.getRaw());
assertNull(wrapper.getMarshalled());
wrapper=new TestWrapper(TEST_VALUE);
wrapper.setRaw(StringUtils.EMPTY);
assertNull(wrapper.getRaw());
assertNull(wrapper.getMarshalled());
}
}