From fd4c1375e6274b86aa0ac39affe864799965aa28 Mon Sep 17 00:00:00 2001 From: h1alexbel Date: Fri, 3 Jan 2025 12:19:56 +0300 Subject: [PATCH] feat(#114): multiple objects test case --- .../lints/errors/LtObjectIsNotUniqueTest.java | 18 ++++++++++++ .../errors/object-is-not-unique/test-1.eo | 29 +++++++++++++++++++ .../errors/object-is-not-unique/test-2.eo | 29 +++++++++++++++++++ 3 files changed, 76 insertions(+) create mode 100644 src/test/resources/org/eolang/lints/errors/object-is-not-unique/test-1.eo create mode 100644 src/test/resources/org/eolang/lints/errors/object-is-not-unique/test-2.eo diff --git a/src/test/java/org/eolang/lints/errors/LtObjectIsNotUniqueTest.java b/src/test/java/org/eolang/lints/errors/LtObjectIsNotUniqueTest.java index 981b3b39..cae85728 100644 --- a/src/test/java/org/eolang/lints/errors/LtObjectIsNotUniqueTest.java +++ b/src/test/java/org/eolang/lints/errors/LtObjectIsNotUniqueTest.java @@ -57,6 +57,24 @@ void catchesDuplicates() throws Exception { ); } + @Test + void catchesDuplicatesAcrossMultipleObjects() throws Exception { + MatcherAssert.assertThat( + "Defects are empty, but they should not", + new LtObjectIsNotUnique().defects( + new MapOf( + new MapEntry<>( + "test-1", LtObjectIsNotUniqueTest.xmir("test-1") + ), + new MapEntry<>( + "test-2", LtObjectIsNotUniqueTest.xmir("test-2") + ) + ) + ), + Matchers.hasSize(Matchers.greaterThan(0)) + ); + } + @Test void allowsAllUnique() throws Exception { MatcherAssert.assertThat( diff --git a/src/test/resources/org/eolang/lints/errors/object-is-not-unique/test-1.eo b/src/test/resources/org/eolang/lints/errors/object-is-not-unique/test-1.eo new file mode 100644 index 00000000..1e4af84e --- /dev/null +++ b/src/test/resources/org/eolang/lints/errors/object-is-not-unique/test-1.eo @@ -0,0 +1,29 @@ +# The MIT License (MIT) +# +# Copyright (c) 2016-2024 Objectionary.com +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + +# test +[] > foo + 52 > spb + +# test +[] > bar + 52 > spb diff --git a/src/test/resources/org/eolang/lints/errors/object-is-not-unique/test-2.eo b/src/test/resources/org/eolang/lints/errors/object-is-not-unique/test-2.eo new file mode 100644 index 00000000..4cc98624 --- /dev/null +++ b/src/test/resources/org/eolang/lints/errors/object-is-not-unique/test-2.eo @@ -0,0 +1,29 @@ +# The MIT License (MIT) +# +# Copyright (c) 2016-2024 Objectionary.com +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + +# test +[] > bar + 52 > spb + +# test +[] > foo + 52 > spb