Skip to content

Commit 12c3979

Browse files
committed
test: tests for select with KClass (#825)
1 parent d73b0f0 commit 12c3979

File tree

1 file changed

+112
-0
lines changed
  • dsl/jpql/src/test/kotlin/com/linecorp/kotlinjdsl/dsl/jpql/select

1 file changed

+112
-0
lines changed

dsl/jpql/src/test/kotlin/com/linecorp/kotlinjdsl/dsl/jpql/select/SelectDslTest.kt

Lines changed: 112 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,31 @@ class SelectDslTest : WithAssertions {
6969
assertThat(actual).isEqualTo(expected)
7070
}
7171

72+
@Test
73+
fun `select() with a KClass`() {
74+
// when
75+
val select = queryPart {
76+
select(
77+
BigDecimal::class,
78+
expression1,
79+
).from(
80+
entity1,
81+
)
82+
}.toQuery()
83+
84+
val actual: SelectQuery<BigDecimal> = select // for type check
85+
86+
// then
87+
val expected = SelectQueries.selectQuery(
88+
returnType = BigDecimal::class,
89+
distinct = false,
90+
select = listOf(expression1),
91+
from = listOf(entity1),
92+
)
93+
94+
assertThat(actual).isEqualTo(expected)
95+
}
96+
7297
@Test
7398
fun `selectDistinct() with an expression`() {
7499
// when
@@ -118,6 +143,31 @@ class SelectDslTest : WithAssertions {
118143
assertThat(actual).isEqualTo(expected)
119144
}
120145

146+
@Test
147+
fun `selectDistinct() with a KClass`() {
148+
// when
149+
val select = queryPart {
150+
selectDistinct(
151+
BigDecimal::class,
152+
expression1,
153+
).from(
154+
entity1,
155+
)
156+
}.toQuery()
157+
158+
val actual: SelectQuery<BigDecimal> = select // for type check
159+
160+
// then
161+
val expected = SelectQueries.selectQuery(
162+
returnType = BigDecimal::class,
163+
distinct = true,
164+
select = listOf(expression1),
165+
from = listOf(entity1),
166+
)
167+
168+
assertThat(actual).isEqualTo(expected)
169+
}
170+
121171
@Test
122172
fun `selectNew() with a generic type and expressions`() {
123173
// when
@@ -148,6 +198,37 @@ class SelectDslTest : WithAssertions {
148198
assertThat(actual).isEqualTo(expected)
149199
}
150200

201+
@Test
202+
fun `selectNew() with a KClass`() {
203+
// when
204+
val select = queryPart {
205+
selectNew(
206+
Dto::class,
207+
expression1,
208+
expression2,
209+
).from(
210+
entity1,
211+
)
212+
}.toQuery()
213+
214+
val actual: SelectQuery<Dto> = select // for type check
215+
216+
// then
217+
val expected = SelectQueries.selectQuery(
218+
returnType = Dto::class,
219+
distinct = false,
220+
select = listOf(
221+
Expressions.new(
222+
type = Dto::class,
223+
args = listOf(expression1, expression2),
224+
),
225+
),
226+
from = listOf(entity1),
227+
)
228+
229+
assertThat(actual).isEqualTo(expected)
230+
}
231+
151232
@Test
152233
fun `selectDistinctNew() with a generic type and expressions`() {
153234
// when
@@ -177,4 +258,35 @@ class SelectDslTest : WithAssertions {
177258

178259
assertThat(actual).isEqualTo(expected)
179260
}
261+
262+
@Test
263+
fun `selectDistinctNew() with a KClass`() {
264+
// when
265+
val select = queryPart {
266+
selectDistinctNew(
267+
Dto::class,
268+
expression1,
269+
expression2,
270+
).from(
271+
entity1,
272+
)
273+
}.toQuery()
274+
275+
val actual: SelectQuery<Dto> = select // for type check
276+
277+
// then
278+
val expected = SelectQueries.selectQuery(
279+
returnType = Dto::class,
280+
distinct = true,
281+
select = listOf(
282+
Expressions.new(
283+
type = Dto::class,
284+
args = listOf(expression1, expression2),
285+
),
286+
),
287+
from = listOf(entity1),
288+
)
289+
290+
assertThat(actual).isEqualTo(expected)
291+
}
180292
}

0 commit comments

Comments
 (0)