@@ -39,230 +39,6 @@ class CommonTest : BaseSQLiteTest() {
3939 database.delete(configs) { it.key eq " test" }
4040 }
4141
42- @Test
43- fun testInsertOrUpdate () {
44- database.insertOrUpdate(Employees ) {
45- set(it.id, 1 )
46- set(it.name, " vince" )
47- set(it.job, " engineer" )
48- set(it.salary, 1000 )
49- set(it.hireDate, LocalDate .now())
50- set(it.departmentId, 1 )
51- onConflict {
52- set(it.salary, it.salary + 1000 )
53- }
54- }
55- database.insertOrUpdate(Employees .aliased(" t" )) {
56- set(it.id, 5 )
57- set(it.name, " vince" )
58- set(it.job, " engineer" )
59- set(it.salary, 1000 )
60- set(it.hireDate, LocalDate .now())
61- set(it.departmentId, 1 )
62- onConflict(it.id) {
63- set(it.salary, it.salary + 1000 )
64- }
65- }
66-
67- assert (database.employees.find { it.id eq 1 }!! .salary == 1100L )
68- assert (database.employees.find { it.id eq 5 }!! .salary == 1000L )
69- }
70-
71- @Test
72- fun testInsertOrUpdate1 () {
73- database.insertOrUpdate(Employees ) {
74- set(it.id, 1 )
75- set(it.name, " vince" )
76- set(it.job, " engineer" )
77- set(it.salary, 1000 )
78- set(it.hireDate, LocalDate .now())
79- set(it.departmentId, 1 )
80- onConflict {
81- set(it.salary, excluded(it.salary))
82- }
83- }
84- database.insertOrUpdate(Employees .aliased(" t" )) {
85- set(it.id, 5 )
86- set(it.name, " vince" )
87- set(it.job, " engineer" )
88- set(it.salary, 1000 )
89- set(it.hireDate, LocalDate .now())
90- set(it.departmentId, 1 )
91- onConflict(it.id) {
92- set(it.salary, it.salary + 1000 )
93- }
94- }
95-
96- assert (database.employees.find { it.id eq 1 }!! .salary == 1000L )
97- assert (database.employees.find { it.id eq 5 }!! .salary == 1000L )
98- }
99-
100- @Test
101- fun testInsertOrUpdateOnConflictWhere () {
102- database.insertOrUpdate(Employees .aliased(" t" )) {
103- set(it.id, 1 )
104- set(it.name, " vince" )
105- set(it.job, " engineer" )
106- set(it.salary, 1000 )
107- set(it.hireDate, LocalDate .now())
108- set(it.departmentId, 1 )
109- onConflict {
110- set(it.salary, it.salary + excluded(it.salary))
111- where {
112- it.salary less 1000
113- }
114- }
115- }
116- assert (database.employees.find { it.id eq 1 }!! .salary == 1100L )
117- database.insertOrUpdate(Employees .aliased(" t" )) {
118- set(it.id, 1 )
119- set(it.name, " vince" )
120- set(it.job, " engineer" )
121- set(it.salary, 1000 )
122- set(it.hireDate, LocalDate .now())
123- set(it.departmentId, 1 )
124- onConflict(it.id) {
125- set(it.salary, it.salary + excluded(it.salary))
126- where {
127- it.salary less 1000
128- }
129- }
130- }
131-
132- assert (database.employees.find { it.id eq 1 }!! .salary == 1100L )
133- }
134-
135- @Test
136- fun testBulkInsert () {
137- database.bulkInsert(Employees .aliased(" t" )) {
138- item {
139- set(it.name, " vince" )
140- set(it.job, " engineer" )
141- set(it.salary, 1000 )
142- set(it.hireDate, LocalDate .now())
143- set(it.departmentId, 1 )
144- }
145- item {
146- set(it.name, " vince" )
147- set(it.job, " engineer" )
148- set(it.salary, 1000 )
149- set(it.hireDate, LocalDate .now())
150- set(it.departmentId, 1 )
151- }
152- }
153-
154- assert (database.employees.count() == 6 )
155- }
156-
157- @Test
158- fun testBulkInsertOrUpdate () {
159- database.bulkInsertOrUpdate(Employees .aliased(" t" )) {
160- item {
161- set(it.id, 1 )
162- set(it.name, " vince" )
163- set(it.job, " trainee" )
164- set(it.salary, 1000 )
165- set(it.hireDate, LocalDate .now())
166- set(it.departmentId, 2 )
167- }
168- item {
169- set(it.id, 5 )
170- set(it.name, " vince" )
171- set(it.job, " engineer" )
172- set(it.salary, 1000 )
173- set(it.hireDate, LocalDate .now())
174- set(it.departmentId, 2 )
175- }
176- onConflict(it.id) {
177- set(it.job, it.job)
178- set(it.departmentId, excluded(it.departmentId))
179- set(it.salary, it.salary + 1000 )
180- }
181- }
182-
183- database.employees.find { it.id eq 1 }!! .let {
184- assert (it.job == " engineer" )
185- assert (it.department.id == 2 )
186- assert (it.salary == 1100L )
187- }
188-
189- database.employees.find { it.id eq 5 }!! .let {
190- assert (it.job == " engineer" )
191- assert (it.department.id == 2 )
192- assert (it.salary == 1000L )
193- }
194- }
195-
196- @Test
197- fun testBulkInsertOrUpdateOnConflictWhere () {
198- database.bulkInsertOrUpdate(Employees .aliased(" t" )) {
199- item {
200- set(it.id, 1 )
201- set(it.name, " vince" )
202- set(it.job, " engineer" )
203- set(it.salary, 1000 )
204- set(it.hireDate, LocalDate .now())
205- set(it.departmentId, 1 )
206- }
207- item {
208- set(it.id, 2 )
209- set(it.name, " marry" )
210- set(it.job, " trainee" )
211- set(it.salary, 1000 )
212- set(it.hireDate, LocalDate .now())
213- set(it.departmentId, 1 )
214- }
215- onConflict(it.id) {
216- set(it.salary, it.salary + 1000 )
217- where {
218- it.job eq " engineer"
219- }
220- }
221- }
222-
223- assert (database.employees.find { it.id eq 1 }!! .salary == 1100L )
224- assert (database.employees.find { it.id eq 2 }!! .salary == 50L )
225- }
226-
227- @Test
228- fun testBulkInsertOrUpdate1 () {
229- val bulkInsertWithUpdate = { ignoreErrors: Boolean ->
230- database.bulkInsertOrUpdate(Employees .aliased(" t" )) {
231- item {
232- set(it.id, 5 )
233- set(it.name, " vince" )
234- set(it.job, " engineer" )
235- set(it.salary, 1000 )
236- set(it.hireDate, LocalDate .now())
237- set(it.departmentId, 1 )
238- }
239- item {
240- set(it.id, 6 )
241- set(it.name, " vince" )
242- set(it.job, " engineer" )
243- set(it.salary, 1000 )
244- set(it.hireDate, LocalDate .now())
245- set(it.departmentId, 1 )
246- }
247- onConflict {
248- if (ignoreErrors) doNothing() else set(it.salary, it.salary + 900 )
249- }
250- }
251- }
252-
253- bulkInsertWithUpdate(false )
254- assert (database.employees.find { it.id eq 5 }!! .salary == 1000L )
255- assert (database.employees.find { it.id eq 6 }!! .salary == 1000L )
256-
257- bulkInsertWithUpdate(false )
258- assert (database.employees.find { it.id eq 5 }!! .salary == 1900L )
259- assert (database.employees.find { it.id eq 6 }!! .salary == 1900L )
260-
261- bulkInsertWithUpdate(true )
262- assert (database.employees.find { it.id eq 5 }!! .salary == 1900L )
263- assert (database.employees.find { it.id eq 6 }!! .salary == 1900L )
264- }
265-
26642 @Test
26743 fun testLimit () {
26844 val query = database.from(Employees ).select().orderBy(Employees .id.desc()).limit(0 , 2 )
0 commit comments