From 315f1b25ba3dbc59ac4a57813c8291240e64c1a8 Mon Sep 17 00:00:00 2001 From: Mateusz Kubuszok Date: Sat, 23 Mar 2024 09:34:04 +0100 Subject: [PATCH] Test build-in name comparators --- .../TransformedNamesComparisonSpec.scala | 82 +++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 chimney/src/test/scala/io/scalaland/chimney/TransformedNamesComparisonSpec.scala diff --git a/chimney/src/test/scala/io/scalaland/chimney/TransformedNamesComparisonSpec.scala b/chimney/src/test/scala/io/scalaland/chimney/TransformedNamesComparisonSpec.scala new file mode 100644 index 000000000..0fbf70b74 --- /dev/null +++ b/chimney/src/test/scala/io/scalaland/chimney/TransformedNamesComparisonSpec.scala @@ -0,0 +1,82 @@ +package io.scalaland.chimney + +import io.scalaland.chimney.dsl.TransformedNamesComparison + +class TransformedNamesComparisonSpec extends ChimneySpec { + + group("TransformedNamesComparison.BeanAware") { + + test("should match identical names") { + TransformedNamesComparison.BeanAware.namesMatch("someField", "someField") ==> true + } + + test("should allows matching fields with Java Bean getters and setters") { + TransformedNamesComparison.BeanAware.namesMatch("someField", "isSomeField") ==> true + TransformedNamesComparison.BeanAware.namesMatch("isSomeField", "someField") ==> true + TransformedNamesComparison.BeanAware.namesMatch("someField", "getSomeField") ==> true + TransformedNamesComparison.BeanAware.namesMatch("getSomeField", "someField") ==> true + TransformedNamesComparison.BeanAware.namesMatch("someField", "setSomeField") ==> true + TransformedNamesComparison.BeanAware.namesMatch("setSomeField", "someField") ==> true + } + + test("should not match names converted with different conventions") { + TransformedNamesComparison.BeanAware.namesMatch("someField", "some-field") ==> false + TransformedNamesComparison.BeanAware.namesMatch("some-field", "someField") ==> false + TransformedNamesComparison.BeanAware.namesMatch("someField", "some_field") ==> false + TransformedNamesComparison.BeanAware.namesMatch("some_field", "someField") ==> false + TransformedNamesComparison.BeanAware.namesMatch("someField", "SOME_FIELD") ==> false + TransformedNamesComparison.BeanAware.namesMatch("SOME_FIELD", "someField") ==> false + } + } + + group("TransformedNamesComparison.StrictEquality") { + + test("should match identical names") { + TransformedNamesComparison.StrictEquality.namesMatch("someField", "someField") ==> true + } + + test("should not match names converted with different conventions") { + TransformedNamesComparison.StrictEquality.namesMatch("someField", "isSomeField") ==> false + TransformedNamesComparison.StrictEquality.namesMatch("isSomeField", "someField") ==> false + TransformedNamesComparison.StrictEquality.namesMatch("someField", "getSomeField") ==> false + TransformedNamesComparison.StrictEquality.namesMatch("getSomeField", "someField") ==> false + TransformedNamesComparison.StrictEquality.namesMatch("someField", "setSomeField") ==> false + TransformedNamesComparison.StrictEquality.namesMatch("setSomeField", "someField") ==> false + TransformedNamesComparison.StrictEquality.namesMatch("someField", "some-field") ==> false + TransformedNamesComparison.StrictEquality.namesMatch("some-field", "someField") ==> false + TransformedNamesComparison.StrictEquality.namesMatch("someField", "some_field") ==> false + TransformedNamesComparison.StrictEquality.namesMatch("some_field", "someField") ==> false + TransformedNamesComparison.StrictEquality.namesMatch("someField", "SOME_FIELD") ==> false + TransformedNamesComparison.StrictEquality.namesMatch("SOME_FIELD", "someField") ==> false + } + } + + group("TransformedNamesComparison.CaseInsensitiveEquality") { + + test("should match identical names") { + TransformedNamesComparison.CaseInsensitiveEquality.namesMatch("someField", "someField") ==> true + } + + test("should match names which differ only in letter capitalisation") { + TransformedNamesComparison.CaseInsensitiveEquality.namesMatch("someField", "SomeField") ==> true + TransformedNamesComparison.CaseInsensitiveEquality.namesMatch("SomeField", "someField") ==> true + TransformedNamesComparison.CaseInsensitiveEquality.namesMatch("someField", "SOMEFIELD") ==> true + TransformedNamesComparison.CaseInsensitiveEquality.namesMatch("SOMEFIELD", "someField") ==> true + } + + test("should not match names converted with different conventions") { + TransformedNamesComparison.CaseInsensitiveEquality.namesMatch("someField", "isSomeField") ==> false + TransformedNamesComparison.CaseInsensitiveEquality.namesMatch("isSomeField", "someField") ==> false + TransformedNamesComparison.CaseInsensitiveEquality.namesMatch("someField", "getSomeField") ==> false + TransformedNamesComparison.CaseInsensitiveEquality.namesMatch("getSomeField", "someField") ==> false + TransformedNamesComparison.CaseInsensitiveEquality.namesMatch("someField", "setSomeField") ==> false + TransformedNamesComparison.CaseInsensitiveEquality.namesMatch("setSomeField", "someField") ==> false + TransformedNamesComparison.CaseInsensitiveEquality.namesMatch("someField", "some-field") ==> false + TransformedNamesComparison.CaseInsensitiveEquality.namesMatch("some-field", "someField") ==> false + TransformedNamesComparison.CaseInsensitiveEquality.namesMatch("someField", "some_field") ==> false + TransformedNamesComparison.CaseInsensitiveEquality.namesMatch("some_field", "someField") ==> false + TransformedNamesComparison.CaseInsensitiveEquality.namesMatch("someField", "SOME_FIELD") ==> false + TransformedNamesComparison.CaseInsensitiveEquality.namesMatch("SOME_FIELD", "someField") ==> false + } + } +}