def METHOD_NAME(self, data, mock_set, mock_db):
    current_config = data["current_config"]
    expected_config = data["expected_config"]
    patch = jsonpatch.JsonPatch(data["patch"])
    # Test patch applier
    mock_set.side_effect = set_entry
    patch_applier = self.create_patch_applier(current_config)
    patch_applier.apply(patch)
    result_config = patch_applier.config_wrapper.get_config_db_as_json()
    self.assertEqual(expected_config, result_config)
    # Test steps in change applier
    sorter = self.create_strict_patch_sorter(current_config)
    actual_changes = sorter.sort(patch)
    target_config = patch.apply(current_config)
    simulated_config = current_config
    for change in actual_changes:
        simulated_config = change.apply(simulated_config)
        is_valid, error = self.config_wrapper.validate_config_db_config(simulated_config)
        self.assertTrue(is_valid, f"Change will produce invalid config. Error: {error}")
    self.assertEqual(target_config, simulated_config)
    self.assertEqual(simulated_config, expected_config)