use of org.talend.components.netsuite.util.Mapper in project components by Talend.
the class NetSuiteWebServiceMockTestFixture method assertIndexedRecord.
public static void assertIndexedRecord(TypeDesc typeDesc, IndexedRecord indexedRecord) throws Exception {
assertNotNull(indexedRecord);
Schema recordSchema = indexedRecord.getSchema();
assertEquals(typeDesc.getFields().size(), recordSchema.getFields().size());
for (Schema.Field field : recordSchema.getFields()) {
String nsFieldName = getNsFieldName(field);
FieldDesc fieldDesc = typeDesc.getField(nsFieldName);
assertNotNull(field);
Object value = indexedRecord.get(field.pos());
if (fieldDesc instanceof CustomFieldDesc) {
CustomFieldDesc customFieldDesc = fieldDesc.asCustom();
switch(customFieldDesc.getCustomFieldType()) {
case BOOLEAN:
case LONG:
case DOUBLE:
case STRING:
case DATE:
assertNotNull(value);
break;
}
} else {
Class<?> datumClass = fieldDesc.getValueType();
if (datumClass == Boolean.class || datumClass == Long.class || datumClass == Double.class || datumClass == String.class || datumClass == XMLGregorianCalendar.class) {
assertNotNull(value);
} else if (datumClass.isEnum()) {
assertNotNull(value);
Mapper<String, Enum> enumAccessor = Beans.getEnumFromStringMapper((Class<Enum>) datumClass);
Enum modelValue = enumAccessor.map((String) value);
assertNotNull(modelValue);
}
}
}
}
Aggregations