diff --git a/loggerazzi/src/main/java/com/telefonica/loggerazzi/LogComparator.kt b/loggerazzi/src/main/java/com/telefonica/loggerazzi/LogComparator.kt index f846b72..5275fd5 100644 --- a/loggerazzi/src/main/java/com/telefonica/loggerazzi/LogComparator.kt +++ b/loggerazzi/src/main/java/com/telefonica/loggerazzi/LogComparator.kt @@ -21,4 +21,29 @@ class DefaultLogComparator : LogComparator { return compareResult.toString().takeIf { it.isNotEmpty() } } -} \ No newline at end of file +} + +@Suppress("unused") +class AnyOrderLogComparator : LogComparator { + override fun compare(recorded: List, golden: List): String? { + val goldenSet = golden.toSet() + val recordedSet = recorded.toSet() + + val missing = goldenSet - recordedSet + val extra = recordedSet - goldenSet + + if (missing.isEmpty() && extra.isEmpty()) { + return null + } + + val result = StringBuilder() + if (missing.isNotEmpty()) { + result.appendLine("Missing entries (in golden but not in recorded): ${missing.toList()}") + } + if (extra.isNotEmpty()) { + result.appendLine("Extra entries (in recorded but not in golden): ${extra.toList()}") + } + + return result.toString().trimEnd() + } +}