Skip to content

Commit 77d2d18

Browse files
committed
added QueryBuilder tests
1 parent 821a66e commit 77d2d18

File tree

3 files changed

+97
-0
lines changed

3 files changed

+97
-0
lines changed

pom.xml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,15 @@
5252
<maven.compiler.target>23</maven.compiler.target>
5353
</properties>
5454

55+
<dependencies>
56+
<dependency>
57+
<groupId>org.junit.jupiter</groupId>
58+
<artifactId>junit-jupiter-api</artifactId>
59+
<version>5.8.2</version>
60+
<scope>test</scope>
61+
</dependency>
62+
</dependencies>
63+
5564
<build>
5665
<plugins>
5766
<plugin>
Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
package io.github.kdesp73.databridge.helpers;
2+
3+
import org.junit.jupiter.api.Test;
4+
5+
import static org.junit.jupiter.api.Assertions.*;
6+
7+
class QueryBuilderTest {
8+
9+
@Test
10+
void select() {
11+
QueryBuilder qb = new QueryBuilder();
12+
String query = qb.select("col1", "col2").build();
13+
assertEquals("SELECT col1, col2", query, "SELECT query with columns failed.");
14+
}
15+
16+
@Test
17+
void selectAll() {
18+
QueryBuilder qb = new QueryBuilder();
19+
String query = qb.select().build();
20+
assertEquals("SELECT *", query, "SELECT * query failed.");
21+
}
22+
23+
@Test
24+
void from() {
25+
QueryBuilder qb = new QueryBuilder();
26+
String query = qb.select("col1").from("my_table").build();
27+
assertEquals("SELECT col1 FROM my_table", query, "FROM clause failed.");
28+
}
29+
30+
@Test
31+
void where() {
32+
QueryBuilder qb = new QueryBuilder();
33+
String query = qb.select("*").from("my_table").where("col1 = 1").build();
34+
assertEquals("SELECT * FROM my_table WHERE col1 = 1", query, "WHERE clause failed.");
35+
}
36+
37+
@Test
38+
void insertInto() {
39+
QueryBuilder qb = new QueryBuilder();
40+
String query = qb.insertInto("my_table").columns("col1", "col2").values("val1", 123).build();
41+
assertEquals("INSERT INTO my_table (col1, col2) VALUES ('val1', 123)", query, "INSERT INTO query failed.");
42+
}
43+
44+
@Test
45+
void update() {
46+
QueryBuilder qb = new QueryBuilder();
47+
String query = qb.update("my_table").set("col1", "new_value").build();
48+
assertEquals("UPDATE my_table SET col1 = 'new_value'", query, "UPDATE query failed.");
49+
}
50+
51+
@Test
52+
void updateWithNumericValue() {
53+
QueryBuilder qb = new QueryBuilder();
54+
String query = qb.update("my_table").set("col1", 42).build();
55+
assertEquals("UPDATE my_table SET col1 = 42", query, "UPDATE query with numeric value failed.");
56+
}
57+
58+
@Test
59+
void deleteFrom() {
60+
QueryBuilder qb = new QueryBuilder();
61+
String query = qb.deleteFrom("my_table").where("col1 = 1").build();
62+
assertEquals("DELETE FROM my_table WHERE col1 = 1", query, "DELETE query failed.");
63+
}
64+
65+
@Test
66+
void reset() {
67+
QueryBuilder qb = new QueryBuilder();
68+
qb.select("*").from("my_table");
69+
qb.reset();
70+
assertThrows(IllegalStateException.class, qb::build, "Reset did not clear the query builder.");
71+
}
72+
73+
@Test
74+
void buildWithoutReset() {
75+
QueryBuilder qb = new QueryBuilder();
76+
qb.select("*").from("my_table");
77+
String query = qb.build();
78+
assertEquals("SELECT * FROM my_table", query, "Build method did not return the expected query.");
79+
assertThrows(IllegalStateException.class, qb::build, "QueryBuilder did not reset after build.");
80+
}
81+
82+
@Test
83+
void emptyBuildThrowsException() {
84+
QueryBuilder qb = new QueryBuilder();
85+
assertThrows(IllegalStateException.class, qb::build, "Building an empty query did not throw an exception.");
86+
}
87+
}

todo.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
TODO: Connection Pooling
22
TODO: Batch Processing
3+
TODO: migration rerun
34
DONE: TransactionManager
45
DONE: Result Mapping
56
DONE: Config Management

0 commit comments

Comments
 (0)