Skip to content

Commit 06a7522

Browse files
committed
test: add null-guard and SelectBuilder offset tests for full coverage
Cover the five NullPointerException guards in QueryBuilderDefaults that were previously unreachable in tests: - builder(null) on the static factory - Builder.dialect(null) - Builder.defaultColumns(null) - Builder.likePrefix(null) - Builder.likeSuffix(null) Also add selectBuilderDefaultOffsetApplied to hit the true-branch of the defaultOffset ternary in SelectBuilder.buildLimitOffsetClause(). QueryBuilderDefaults now reports 100% line coverage; SelectBuilder reaches 97.7% (only the unreachable UnsupportedOperationException path for unknown operators remains uncovered).
1 parent 789a55f commit 06a7522

1 file changed

Lines changed: 42 additions & 0 deletions

File tree

src/test/java/com/github/ezframework/javaquerybuilder/query/QueryBuilderDefaultsTest.java

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,35 @@ void setGlobalNullThrowsNullPointerException() {
8585
assertThrows(NullPointerException.class, () -> QueryBuilderDefaults.setGlobal(null));
8686
}
8787

88+
@Test
89+
void builderFromNullSourceThrowsNullPointerException() {
90+
assertThrows(NullPointerException.class, () -> QueryBuilderDefaults.builder(null));
91+
}
92+
93+
@Test
94+
void builderDialectSetToNullThrowsNullPointerException() {
95+
assertThrows(NullPointerException.class,
96+
() -> QueryBuilderDefaults.builder().dialect(null));
97+
}
98+
99+
@Test
100+
void builderDefaultColumnsSetToNullThrowsNullPointerException() {
101+
assertThrows(NullPointerException.class,
102+
() -> QueryBuilderDefaults.builder().defaultColumns(null));
103+
}
104+
105+
@Test
106+
void builderLikePrefixSetToNullThrowsNullPointerException() {
107+
assertThrows(NullPointerException.class,
108+
() -> QueryBuilderDefaults.builder().likePrefix(null));
109+
}
110+
111+
@Test
112+
void builderLikeSuffixSetToNullThrowsNullPointerException() {
113+
assertThrows(NullPointerException.class,
114+
() -> QueryBuilderDefaults.builder().likeSuffix(null));
115+
}
116+
88117
@Test
89118
void withDefaultsNullThrowsNullPointerExceptionOnQueryBuilder() {
90119
assertThrows(NullPointerException.class,
@@ -312,6 +341,19 @@ void selectBuilderDefaultLimitApplied() {
312341
"Expected LIMIT 30: " + result.getSql());
313342
}
314343

344+
@Test
345+
void selectBuilderDefaultOffsetApplied() {
346+
QueryBuilderDefaults defaults = QueryBuilderDefaults.builder()
347+
.defaultLimit(10)
348+
.defaultOffset(5)
349+
.build();
350+
351+
SqlResult result = new SelectBuilder().withDefaults(defaults).from("users").build();
352+
353+
assertTrue(result.getSql().contains("OFFSET 5"),
354+
"Expected OFFSET 5: " + result.getSql());
355+
}
356+
315357
@Test
316358
void selectBuilderLikeWrapsWithDefaults() {
317359
QueryBuilderDefaults defaults = QueryBuilderDefaults.builder()

0 commit comments

Comments
 (0)