From 25ce71b068d1a7aeff7b60b1e8cca5c4162689b9 Mon Sep 17 00:00:00 2001 From: "jonghyon.s" Date: Sat, 4 May 2024 23:09:02 +0900 Subject: [PATCH] fix: render false condition for in condition if the compare values is empty --- .../jpql/serializer/impl/JpqlInSerializer.kt | 20 +++++++++---------- .../serializer/impl/JpqlNotInSerializer.kt | 20 +++++++++---------- .../serializer/impl/JpqlInSerializerTest.kt | 5 ++--- .../impl/JpqlNotInSerializerTest.kt | 5 ++--- 4 files changed, 24 insertions(+), 26 deletions(-) diff --git a/render/jpql/src/main/kotlin/com/linecorp/kotlinjdsl/render/jpql/serializer/impl/JpqlInSerializer.kt b/render/jpql/src/main/kotlin/com/linecorp/kotlinjdsl/render/jpql/serializer/impl/JpqlInSerializer.kt index 3d8508a37..4d1fd3b0c 100644 --- a/render/jpql/src/main/kotlin/com/linecorp/kotlinjdsl/render/jpql/serializer/impl/JpqlInSerializer.kt +++ b/render/jpql/src/main/kotlin/com/linecorp/kotlinjdsl/render/jpql/serializer/impl/JpqlInSerializer.kt @@ -19,18 +19,18 @@ class JpqlInSerializer : JpqlSerializer> { val delegate = context.getValue(JpqlRenderSerializer) if (IterableUtils.isEmpty(part.compareValues)) { - return - } - - delegate.serialize(part.value, writer, context) + writer.write("0 = 1") + } else { + delegate.serialize(part.value, writer, context) - writer.write(" ") - writer.write("IN") - writer.write(" ") + writer.write(" ") + writer.write("IN") + writer.write(" ") - writer.writeParentheses { - writer.writeEach(part.compareValues, separator = ", ") { - delegate.serialize(it, writer, context) + writer.writeParentheses { + writer.writeEach(part.compareValues, separator = ", ") { + delegate.serialize(it, writer, context) + } } } } diff --git a/render/jpql/src/main/kotlin/com/linecorp/kotlinjdsl/render/jpql/serializer/impl/JpqlNotInSerializer.kt b/render/jpql/src/main/kotlin/com/linecorp/kotlinjdsl/render/jpql/serializer/impl/JpqlNotInSerializer.kt index dc24ef161..09da51dc8 100644 --- a/render/jpql/src/main/kotlin/com/linecorp/kotlinjdsl/render/jpql/serializer/impl/JpqlNotInSerializer.kt +++ b/render/jpql/src/main/kotlin/com/linecorp/kotlinjdsl/render/jpql/serializer/impl/JpqlNotInSerializer.kt @@ -19,18 +19,18 @@ class JpqlNotInSerializer : JpqlSerializer> { val delegate = context.getValue(JpqlRenderSerializer) if (IterableUtils.isEmpty(part.compareValues)) { - return - } - - delegate.serialize(part.value, writer, context) + writer.write("0 = 1") + } else { + delegate.serialize(part.value, writer, context) - writer.write(" ") - writer.write("NOT IN") - writer.write(" ") + writer.write(" ") + writer.write("NOT IN") + writer.write(" ") - writer.writeParentheses { - writer.writeEach(part.compareValues, separator = ", ") { - delegate.serialize(it, writer, context) + writer.writeParentheses { + writer.writeEach(part.compareValues, separator = ", ") { + delegate.serialize(it, writer, context) + } } } } diff --git a/render/jpql/src/test/kotlin/com/linecorp/kotlinjdsl/render/jpql/serializer/impl/JpqlInSerializerTest.kt b/render/jpql/src/test/kotlin/com/linecorp/kotlinjdsl/render/jpql/serializer/impl/JpqlInSerializerTest.kt index 6740d8b66..51786ff95 100644 --- a/render/jpql/src/test/kotlin/com/linecorp/kotlinjdsl/render/jpql/serializer/impl/JpqlInSerializerTest.kt +++ b/render/jpql/src/test/kotlin/com/linecorp/kotlinjdsl/render/jpql/serializer/impl/JpqlInSerializerTest.kt @@ -9,7 +9,6 @@ import com.linecorp.kotlinjdsl.render.jpql.entity.book.Book import com.linecorp.kotlinjdsl.render.jpql.serializer.JpqlRenderSerializer import com.linecorp.kotlinjdsl.render.jpql.serializer.JpqlSerializerTest import com.linecorp.kotlinjdsl.render.jpql.writer.JpqlWriter -import io.mockk.called import io.mockk.impl.annotations.MockK import io.mockk.verifySequence import org.assertj.core.api.WithAssertions @@ -73,7 +72,7 @@ class JpqlInSerializerTest : WithAssertions { } @Test - fun `serialize() draws nothing, when the compareValues is empty`() { + fun `serialize() draws 0 = 1, when the compareValues is empty`() { // Given val part = Predicates.`in`( expression1, @@ -86,7 +85,7 @@ class JpqlInSerializerTest : WithAssertions { // Then verifySequence { - writer wasNot called + writer.write("0 = 1") } } } diff --git a/render/jpql/src/test/kotlin/com/linecorp/kotlinjdsl/render/jpql/serializer/impl/JpqlNotInSerializerTest.kt b/render/jpql/src/test/kotlin/com/linecorp/kotlinjdsl/render/jpql/serializer/impl/JpqlNotInSerializerTest.kt index 566de3730..d241c39ea 100644 --- a/render/jpql/src/test/kotlin/com/linecorp/kotlinjdsl/render/jpql/serializer/impl/JpqlNotInSerializerTest.kt +++ b/render/jpql/src/test/kotlin/com/linecorp/kotlinjdsl/render/jpql/serializer/impl/JpqlNotInSerializerTest.kt @@ -9,7 +9,6 @@ import com.linecorp.kotlinjdsl.render.jpql.entity.book.Book import com.linecorp.kotlinjdsl.render.jpql.serializer.JpqlRenderSerializer import com.linecorp.kotlinjdsl.render.jpql.serializer.JpqlSerializerTest import com.linecorp.kotlinjdsl.render.jpql.writer.JpqlWriter -import io.mockk.called import io.mockk.impl.annotations.MockK import io.mockk.verifySequence import org.assertj.core.api.WithAssertions @@ -73,7 +72,7 @@ class JpqlNotInSerializerTest : WithAssertions { } @Test - fun `serialize() draws nothing, when the compareValues is empty`() { + fun `serialize() draws 0 = 1, when the compareValues is empty`() { // Given val part = Predicates.notIn( expression1, @@ -86,7 +85,7 @@ class JpqlNotInSerializerTest : WithAssertions { // Then verifySequence { - writer wasNot called + writer.write("0 = 1") } } }