in java/clickhouse-connector/src/integration-test/java/com/epam/deltix/timebase/connector/clickhouse/BaseStreamReplicatorTests.java [606:629]
public static void assertEqualsObjectFields(Map<String, Object> values, Map<String, InstrumentMessage> objects) throws IllegalAccessException, InvocationTargetException {
for (Map.Entry<String, Object> entry : values.entrySet()) {
String columnName = entry.getKey();
for (Map.Entry<String, InstrumentMessage> object_entry : objects.entrySet()) {
InstrumentMessage object = object_entry.getValue();
if (columnName.equals(SchemaProcessor.TYPE_COLUMN_NAME) || columnName.equals(SchemaProcessor.INSTRUMENT_COLUMN_NAME) ||
columnName.equals(SchemaProcessor.TIMESTAMP_COLUMN_NAME) || columnName.equals(SchemaProcessor.PARTITION_COLUMN_NAME))
continue;
if (columnName.startsWith(object_entry.getKey())) {
if (columnName.contains(object_entry.getKey() + "_type")) {
assertEquals(entry.getValue(), object.getClass().getName());
} else {
Method m = Arrays.stream(object.getClass().getMethods())
.filter(method -> method.getName().startsWith("get") || method.getName().startsWith("is"))
.filter(method -> columnName.contains(method.getName().substring(4)))
.findFirst()
.orElseThrow(() -> new AssertionError("Not found value for field from " + columnName));
Object invoke = m.invoke(object);
assertEquals(entry.getValue(), invoke);
}
}
}
}
}