@Test
public void testSumConvertingStorageTypeToNormal() throws Exception {
ValueMetaInterface metaA = mock( ValueMetaInteger.class );
metaA.setStorageType( ValueMetaInterface.STORAGE_TYPE_BINARY_STRING );
ValueMetaInterface metaB = new ValueMetaInteger();
metaB.setStorageType( ValueMetaInterface.STORAGE_TYPE_BINARY_STRING );
Object valueB = "2";
when( metaA.convertData( metaB, valueB ) ).thenAnswer( new Answer<Long>() {
@Override
public Long answer( InvocationOnMock invocation ) throws Throwable {
return new Long( 2 );
}
} );
Object returnValue = ValueDataUtil.sum( metaA, null, metaB, valueB );
verify( metaA ).convertData( metaB, valueB );
assertEquals( 2L, returnValue );
assertEquals( metaA.getStorageType(), ValueMetaInterface.STORAGE_TYPE_NORMAL );
}