public void testNonStaticChangeModifier()

in timescaledb-connector/src/integration-test/java/com/epam/deltix/timebase/connector/service/timescale/TimescaleMigrationServiceTest.java [558:633]


    public void testNonStaticChangeModifier() {
        applyTimescaleSchema();

        SchemaChangeMessage changeMessage = new SchemaChangeMessage();
        SchemaDescriptorChangeAction alterDescriptorAction = new SchemaDescriptorChangeAction();
        alterDescriptorAction.setChangeTypes(SchemaDescriptorChangeType.FIELDS_CHANGE);

        DataFieldInfo previousFieldState = null;
        ClassDescriptorInfo previousDescriptor = null;
        ObjectArrayList<ClassDescriptorInfo> previousState = getDescriptorMessages();
        for (ClassDescriptorInfo d : previousState) {
            if (d.getName().equals("com.epam.deltix.timebase.connector.model.SecondTestClass")) {
                RecordClassDescriptor rcd = (RecordClassDescriptor) d;

                for (DataFieldInfo field : rcd.getDataFields()) {
                    if (field.getName().equals("secondLongValue")) {
                        previousFieldState = field;
                    }
                }
                previousDescriptor = rcd;
            }
        }

        IntegerDataType longDataType = new IntegerDataType();
        StaticDataField newField = new StaticDataField();
        newField.setName("secondLongValue");
        newField.setStaticValue("1237454");
        newField.setDataType(longDataType);

        DataFieldInfo newFieldState = null;
        ClassDescriptorInfo newDescriptor = null;
        ObjectArrayList<ClassDescriptorInfo> newState = getDescriptorMessages();
        for (ClassDescriptorInfo d : newState) {
            if (d.getName().equals("com.epam.deltix.timebase.connector.model.SecondTestClass")) {
                RecordClassDescriptor rcd = (RecordClassDescriptor) d;

                for (DataFieldInfo field : rcd.getDataFields()) {
                    if (field.getName().equals("secondLongValue")) {
                        newFieldState = field;
                    }
                }
                rcd.getDataFields().remove(newFieldState);
                newFieldState = newField;
                rcd.getDataFields().add(newFieldState);
                newDescriptor = rcd;
            }
        }

        changeMessage.setNewState(newState);
        changeMessage.setPreviousState(previousState);

        alterDescriptorAction.setPreviousState(previousDescriptor);
        alterDescriptorAction.setNewState(newDescriptor);

        ObjectArrayList<SchemaFieldChangeActionInfo> filedActions = new ObjectArrayList<>();
        SchemaFieldChangeAction filedAction = new SchemaFieldChangeAction();
        filedAction.setChangeTypes(SchemaFieldChangeType.MODIFIER_CHANGE);
        filedAction.setNewState(newFieldState);
        filedAction.setPreviousState(previousFieldState);

        SchemaFieldDataTransformation filedTransformation = new SchemaFieldDataTransformation();
        filedTransformation.setDefaultValue("1237454");

        filedAction.setDataTransformation(filedTransformation);

        filedActions.add(filedAction);

        alterDescriptorAction.setFieldChangeActions(filedActions);

        ObjectArrayList<SchemaDescriptorChangeActionInfo> actions = new ObjectArrayList<>();
        actions.add(alterDescriptorAction);

        changeMessage.setDescriptorChangeActions(actions);

        migrationService.apply(changeMessage, "events");
    }