Search in sources :

Example 1 with Mapper

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);
            }
        }
    }
}
Also used : XMLGregorianCalendar(javax.xml.datatype.XMLGregorianCalendar) Mapper(org.talend.components.netsuite.util.Mapper) Schema(org.apache.avro.Schema) CustomFieldDesc(org.talend.components.netsuite.client.model.CustomFieldDesc) CustomFieldDesc(org.talend.components.netsuite.client.model.CustomFieldDesc) FieldDesc(org.talend.components.netsuite.client.model.FieldDesc)

Aggregations

XMLGregorianCalendar (javax.xml.datatype.XMLGregorianCalendar)1 Schema (org.apache.avro.Schema)1 CustomFieldDesc (org.talend.components.netsuite.client.model.CustomFieldDesc)1 FieldDesc (org.talend.components.netsuite.client.model.FieldDesc)1 Mapper (org.talend.components.netsuite.util.Mapper)1