Skip to content

Commit d0f71a3

Browse files
add test
1 parent 2ac4fc1 commit d0f71a3

File tree

2 files changed

+104
-0
lines changed

2 files changed

+104
-0
lines changed

dbAndCsvBatch/build.gradle

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,10 @@ compileJava {
117117
sourceSets.main.java.srcDirs("build/generated-src/jooq/main")
118118
}
119119

120+
tasks.named('compileTestJava') {
121+
dependsOn generateJooq
122+
}
123+
120124
tasks.named('build') {
121125
dependsOn 'generateJooq'
122126
}
Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
package com.example.batch.repository;
2+
3+
import static org.junit.jupiter.api.Assertions.*;
4+
5+
import com.example.batch.jooq.tables.records.MemberRecord;
6+
import java.util.List;
7+
import org.jooq.DSLContext;
8+
import org.junit.jupiter.api.BeforeEach;
9+
import org.junit.jupiter.api.Test;
10+
import org.springframework.beans.factory.annotation.Autowired;
11+
import org.springframework.boot.test.context.SpringBootTest;
12+
import org.springframework.test.context.TestPropertySource;
13+
14+
@TestPropertySource(
15+
properties = {
16+
"spring.batch.job.enabled=false",
17+
"spring.datasource.mysqlmain.url=jdbc:mysql://localhost:3306/sampledb",
18+
"spring.datasource.mysqlmain.username=sampleuser",
19+
"spring.datasource.mysqlmain.password=samplepassword"
20+
})
21+
@SpringBootTest
22+
class MemberRepositoryTest {
23+
24+
@Autowired private DSLContext dslContext;
25+
26+
private MemberRepository repository;
27+
28+
@BeforeEach
29+
void setup() {
30+
repository = new MemberRepository(dslContext);
31+
cleanupRecordsByType((byte) 100);
32+
}
33+
34+
@Test
35+
void testInsertAndSelect() {
36+
// Insert
37+
MemberRecord member =
38+
createMemberRecord("Test1", "[email protected]", "1234567890", "Address 1", (byte) 100);
39+
repository.insert(member);
40+
41+
// Select & Verify
42+
List<MemberRecord> selected =
43+
repository.selectByTypeAndDeleteFlag(List.of((byte) 100), (byte) 0);
44+
assertFalse(selected.isEmpty(), "Expected to find at least one record.");
45+
assertEquals("Test1", selected.get(0).getName(), "Member name mismatch.");
46+
}
47+
48+
@Test
49+
void testUpdate() {
50+
// Insert
51+
MemberRecord member =
52+
createMemberRecord("Test1", "[email protected]", "1234567890", "Address 1", (byte) 100);
53+
repository.insert(member);
54+
55+
// Update
56+
List<MemberRecord> selected =
57+
repository.selectByTypeAndDeleteFlag(List.of((byte) 100), (byte) 0);
58+
member.setId(selected.get(0).getId());
59+
member.setName("Updated");
60+
repository.update(member);
61+
62+
// Verify
63+
selected = repository.selectByTypeAndDeleteFlag(List.of((byte) 100), (byte) 0);
64+
assertEquals("Updated", selected.get(0).getName(), "Updated member name mismatch.");
65+
}
66+
67+
@Test
68+
void testDelete() {
69+
// Insert
70+
MemberRecord member =
71+
createMemberRecord("Test1", "[email protected]", "1234567890", "Address 1", (byte) 100);
72+
repository.insert(member);
73+
74+
// Delete
75+
List<MemberRecord> selected =
76+
repository.selectByTypeAndDeleteFlag(List.of((byte) 100), (byte) 0);
77+
repository.delete(selected.get(0).getId());
78+
79+
// Verify
80+
selected = repository.selectByTypeAndDeleteFlag(List.of((byte) 100), (byte) 0);
81+
assertTrue(selected.isEmpty(), "Expected no records after deletion.");
82+
}
83+
84+
private void cleanupRecordsByType(byte type) {
85+
List<MemberRecord> existingRecords =
86+
repository.selectByTypeAndDeleteFlag(List.of(type), (byte) 0);
87+
existingRecords.forEach(record -> repository.delete(record.getId()));
88+
}
89+
90+
private MemberRecord createMemberRecord(
91+
String name, String email, String phone, String address, byte type) {
92+
MemberRecord record = new MemberRecord();
93+
record.setName(name);
94+
record.setEmail(email);
95+
record.setPhone(phone);
96+
record.setAddress(address);
97+
record.setType(type);
98+
return record;
99+
}
100+
}

0 commit comments

Comments
 (0)