Skip to content

Commit 2d7d285

Browse files
committed
1 parent d6aae48 commit 2d7d285

2 files changed

Lines changed: 116 additions & 0 deletions

File tree

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
/*
2+
* The MIT License (MIT)
3+
* <p>
4+
* Copyright (c) 2016-2019 Maksim Gramin
5+
* <p>
6+
* Permission is hereby granted, free of charge, to any person obtaining a copy
7+
* of this software and associated documentation files (the "Software"), to deal
8+
* in the Software without restriction, including without limitation the rights
9+
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10+
* copies of the Software, and to permit persons to whom the Software is
11+
* furnished to do so, subject to the following conditions:
12+
* <p>
13+
* The above copyright notice and this permission notice shall be included
14+
* in all copies or substantial portions of the Software.
15+
* <p>
16+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17+
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18+
* FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE
19+
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20+
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21+
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22+
* SOFTWARE.
23+
*/
24+
25+
package com.github.mgramin.sqlboot.model.connection
26+
27+
import org.junit.jupiter.api.Assertions.assertEquals
28+
import org.junit.jupiter.api.Test
29+
import org.junit.jupiter.api.extension.ExtendWith
30+
import org.junit.jupiter.params.ParameterizedTest
31+
import org.junit.jupiter.params.provider.ValueSource
32+
import org.springframework.beans.factory.annotation.Autowired
33+
import org.springframework.boot.autoconfigure.EnableAutoConfiguration
34+
import org.springframework.boot.test.context.ConfigFileApplicationContextInitializer
35+
import org.springframework.test.context.ContextConfiguration
36+
import org.springframework.test.context.junit.jupiter.SpringExtension
37+
38+
@ExtendWith(SpringExtension::class)
39+
@EnableAutoConfiguration
40+
@ContextConfiguration(classes = [DbConnectionList::class], initializers = [ConfigFileApplicationContextInitializer::class])
41+
internal class DbConnectionListTest {
42+
43+
@Autowired
44+
lateinit var dbConnectionList: DbConnectionList
45+
46+
@ParameterizedTest
47+
@ValueSource(strings = ["test", "dev", "prod"])
48+
fun getConnectionByName(connectionName: String) {
49+
assertEquals(connectionName, dbConnectionList.getConnectionByName(connectionName).getName())
50+
}
51+
52+
@ParameterizedTest
53+
@ValueSource(strings = ["test", "dev", "prod"])
54+
fun getConnectionsByMask(connectionMask: String) {
55+
assertEquals(connectionMask, dbConnectionList.getConnectionsByMask(connectionMask).first().getName())
56+
}
57+
58+
@Test
59+
fun getConnections() {
60+
assertEquals(4, dbConnectionList.connections.count())
61+
}
62+
63+
}

src/test/resources/application.yml

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
conf:
2+
connections:
3+
- name: h2
4+
baseFolder: file:conf/h2/database
5+
url: jdbc:h2:mem:;INIT=RUNSCRIPT FROM 'classpath:schema.sql';
6+
driverClassName: org.h2.Driver
7+
paginationQueryTemplate: >
8+
${query} offset ${uri.pageSize()*(uri.pageNumber()-1)} limit ${uri.pageSize()}
9+
properties: >
10+
{
11+
"visible": false,
12+
"description": "Embedded db for unit tests only"
13+
}
14+
- name: dev
15+
baseFolder: file:conf/h2/database
16+
url: jdbc:h2:mem:;INIT=RUNSCRIPT FROM 'classpath:schema.sql';
17+
driverClassName: org.h2.Driver
18+
paginationQueryTemplate: >
19+
${query} offset ${uri.pageSize()*(uri.pageNumber()-1)} limit ${uri.pageSize()}
20+
properties: >
21+
{
22+
"visible": false,
23+
"color": "green",
24+
"description": "Develop demo db",
25+
"css_class": "fas fa-fw fa-2x fa-tools"
26+
}
27+
- name: test
28+
baseFolder: file:conf/h2/database
29+
url: jdbc:h2:mem:;INIT=RUNSCRIPT FROM 'classpath:schema.sql';
30+
driverClassName: org.h2.Driver
31+
paginationQueryTemplate: >
32+
${query} offset ${uri.pageSize()*(uri.pageNumber()-1)} limit ${uri.pageSize()}
33+
properties: >
34+
{
35+
"visible": false,
36+
"color": "orange",
37+
"description": "Testing demo db",
38+
"css_class": "fas fa-fw fa-2x fa-bug"
39+
}
40+
- name: prod
41+
baseFolder: file:conf/h2/database
42+
url: jdbc:h2:mem:;INIT=RUNSCRIPT FROM 'classpath:schema.sql';
43+
driverClassName: org.h2.Driver
44+
paginationQueryTemplate: >
45+
${query} offset ${uri.pageSize()*(uri.pageNumber()-1)} limit ${uri.pageSize()}
46+
properties: >
47+
{
48+
"visible": false,
49+
"color": "red",
50+
"description": "Production demo db",
51+
"css_class": "fas fa-fw fa-2x fa-bicycle"
52+
}
53+

0 commit comments

Comments
 (0)