def METHOD_NAME(
    framework, description, objects, is_valid, is_valid_if_nulls_inequal, consider_nulls_inequal
):
    """
    Tests unique keys
    """
    classes = {
        CLASS_CONTAINER: {
            "attributes": {
                "entities": {
                    "range": CLASS_C,
                    "multivalued": True,
                    "inlined": True,
                    "inlined_as_list": True,
                },
            },
        },
        CLASS_C: {
            "attributes": {
                SLOT_S1: {},
                SLOT_S2: {},
                SLOT_S3: {},
            },
            "unique_keys": {
                "main": {
                    "unique_key_slots": [SLOT_S1, SLOT_S2],
                    "consider_nulls_inequal": consider_nulls_inequal,
                },
                "secondary": {
                    "unique_key_slots": [SLOT_S1, SLOT_S3],
                    "consider_nulls_inequal": consider_nulls_inequal,
                },
            },
            "_mappings": {
                SQL_DDL_SQLITE: f"UNIQUE ({SLOT_S1}, {SLOT_S2})",
            },
        },
    }
    schema = validated_schema(
        METHOD_NAME,
        f"NIE{consider_nulls_inequal}",
        framework,
        classes=classes,
        core_elements=["identifier"],
    )
    obj = {"entities": [{SLOT_S1: s1, SLOT_S2: s2, SLOT_S3: s3} for s1, s2, s3 in objects]}
    expected_behavior = ValidationBehavior.IMPLEMENTS
    if not is_valid:
        if framework == SQL_DDL_SQLITE:
            # SQLite and most RDBMSs treats nulls as inequal
            if not consider_nulls_inequal:
                expected_behavior = ValidationBehavior.IMPLEMENTS
            else:
                expected_behavior = ValidationBehavior.INCOMPLETE
        else:
            # only supported in SQL backends
            expected_behavior = ValidationBehavior.INCOMPLETE
    check_data(
        schema,
        description.replace(" ", "_"),
        framework,
        obj,
        is_valid,
        target_class=CLASS_CONTAINER,
        expected_behavior=expected_behavior,
        description=description,
    )