public static void assertEqualsObjectFields()

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);
                    }
                }
            }
        }
    }