|
|
@ -1,28 +1,28 @@
|
|
|
|
package space.kklochko.jdbc_hospital_example.cli.commands
|
|
|
|
package space.kklochko.jpa_hospital_example.cli.commands
|
|
|
|
|
|
|
|
|
|
|
|
import groovy.sql.Sql
|
|
|
|
import groovy.sql.Sql
|
|
|
|
import space.kklochko.jdbc_hospital_example.cli.commands.factories.CommandFactory
|
|
|
|
import jakarta.persistence.EntityManager
|
|
|
|
import space.kklochko.jdbc_hospital_example.config.factories.LoadDataBaseConfigFromEnvFile
|
|
|
|
import space.kklochko.jpa_hospital_example.cli.commands.factories.CommandFactory
|
|
|
|
import space.kklochko.jdbc_hospital_example.config.models.DataBaseConfig
|
|
|
|
import space.kklochko.jpa_hospital_example.config.factories.LoadDataBaseConfigFromEnvFile
|
|
|
|
import space.kklochko.jdbc_hospital_example.db.factories.DataBaseConnection
|
|
|
|
import space.kklochko.jpa_hospital_example.config.models.DataBaseConfig
|
|
|
|
import space.kklochko.jdbc_hospital_example.db.repositories.DepartmentRepository
|
|
|
|
import space.kklochko.jpa_hospital_example.db.factories.DataBaseConnection
|
|
|
|
import space.kklochko.jdbc_hospital_example.db.repositories.IndicatorRepository
|
|
|
|
import space.kklochko.jpa_hospital_example.db.factories.EntityManagerConnection
|
|
|
|
import space.kklochko.jdbc_hospital_example.db.repositories.PatientRepository
|
|
|
|
import space.kklochko.jpa_hospital_example.db.repositories.DepartmentRepository
|
|
|
|
import space.kklochko.jdbc_hospital_example.db.repositories.blocks.CreateTables
|
|
|
|
import space.kklochko.jpa_hospital_example.db.repositories.IndicatorRepository
|
|
|
|
import space.kklochko.jdbc_hospital_example.db.repositories.blocks.TurnOnUUIDPlugin
|
|
|
|
import space.kklochko.jpa_hospital_example.db.repositories.PatientRepository
|
|
|
|
import space.kklochko.jdbc_hospital_example.models.Indicator
|
|
|
|
|
|
|
|
import spock.lang.Shared
|
|
|
|
import spock.lang.Shared
|
|
|
|
import spock.lang.Specification
|
|
|
|
import spock.lang.Specification
|
|
|
|
import spock.lang.Stepwise
|
|
|
|
import spock.lang.Stepwise
|
|
|
|
import spock.lang.Subject
|
|
|
|
import spock.lang.Subject
|
|
|
|
|
|
|
|
|
|
|
|
import java.sql.Timestamp
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Stepwise
|
|
|
|
@Stepwise
|
|
|
|
class CommandEntitySpec extends Specification {
|
|
|
|
class CommandEntitySpec extends Specification {
|
|
|
|
@Shared
|
|
|
|
@Shared
|
|
|
|
Sql sql
|
|
|
|
Sql sql
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Shared
|
|
|
|
|
|
|
|
EntityManager manager
|
|
|
|
|
|
|
|
|
|
|
|
@Shared
|
|
|
|
@Shared
|
|
|
|
DataBaseConfig db
|
|
|
|
DataBaseConfig db
|
|
|
|
|
|
|
|
|
|
|
@ -33,11 +33,7 @@ class CommandEntitySpec extends Specification {
|
|
|
|
db = (new LoadDataBaseConfigFromEnvFile()).load("db.testing")
|
|
|
|
db = (new LoadDataBaseConfigFromEnvFile()).load("db.testing")
|
|
|
|
dbc = new DataBaseConnection(db)
|
|
|
|
dbc = new DataBaseConnection(db)
|
|
|
|
|
|
|
|
|
|
|
|
TurnOnUUIDPlugin turnOnUUIDPlugin = new TurnOnUUIDPlugin()
|
|
|
|
manager = (new EntityManagerConnection("testing")).connect()
|
|
|
|
turnOnUUIDPlugin.create(dbc)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
CreateTables createTables = new CreateTables()
|
|
|
|
|
|
|
|
createTables.create(dbc)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
sql = Sql.newInstance(db.getUrl(), db.getProperties().get("user"), db.getProperties().get("password"))
|
|
|
|
sql = Sql.newInstance(db.getUrl(), db.getProperties().get("user"), db.getProperties().get("password"))
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -68,18 +64,18 @@ class CommandEntitySpec extends Specification {
|
|
|
|
|
|
|
|
|
|
|
|
where:
|
|
|
|
where:
|
|
|
|
datatype | values | repository || verifyStatement
|
|
|
|
datatype | values | repository || verifyStatement
|
|
|
|
"indicator" | ["id": "3b3f62f4-75b4-11ee-99cb-c0e4349366ab",
|
|
|
|
"indicator" | ["id": "3b3f62f4-75b4-11ee-99cb-c0e4349366ad",
|
|
|
|
"type": "blood, blood",
|
|
|
|
"type": "blood, blood",
|
|
|
|
"values": "Good samples.",
|
|
|
|
"values": "Good samples.",
|
|
|
|
"timestamp": "2023-10-17 14:30:00"] | new IndicatorRepository(dbc) || "SELECT type FROM indicators WHERE id = ?"
|
|
|
|
"timestamp": "2023-10-17 14:30:00"] | new IndicatorRepository(manager) || "SELECT type FROM indicators WHERE id = ?"
|
|
|
|
"patient" | ["id": "bcbbcdb4-702c-11ee-9113-c0e4349366bb",
|
|
|
|
"patient" | ["id": "bcbbcdb4-702c-11ee-9113-c0e4349366bd",
|
|
|
|
"name": "Oleh",
|
|
|
|
"name": "Oleh",
|
|
|
|
"age": "21",
|
|
|
|
"age": "21",
|
|
|
|
"phone": "380123451234"] | new PatientRepository(dbc) || "SELECT name FROM patients WHERE id = ?"
|
|
|
|
"phone": "380123451234"] | new PatientRepository(manager) || "SELECT name FROM patients WHERE id = ?"
|
|
|
|
"department" | ["id": "bcbbcdb4-702c-11ee-9113-c0e4349366cb",
|
|
|
|
"department" | ["id": "bcbbcdb4-702c-11ee-9113-c0e4349366cd",
|
|
|
|
"name": "First department",
|
|
|
|
"name": "First department",
|
|
|
|
"location": "Stepan Bandera Street",
|
|
|
|
"location": "Stepan Bandera Street",
|
|
|
|
"phone": "380123451244"] | new DepartmentRepository(dbc) || "SELECT name FROM departments WHERE id = ?"
|
|
|
|
"phone": "380123451244"] | new DepartmentRepository(manager) || "SELECT name FROM departments WHERE id = ?"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
def "Test update commands"() {
|
|
|
|
def "Test update commands"() {
|
|
|
@ -114,18 +110,18 @@ class CommandEntitySpec extends Specification {
|
|
|
|
"indicator" | ["id": "bcbbcdb4-702c-11ee-9113-c0e4349366ab",
|
|
|
|
"indicator" | ["id": "bcbbcdb4-702c-11ee-9113-c0e4349366ab",
|
|
|
|
"type": "blood, blood",
|
|
|
|
"type": "blood, blood",
|
|
|
|
"values": "Good samples.",
|
|
|
|
"values": "Good samples.",
|
|
|
|
"timestamp": "2023-10-17 14:30:00"] | "insert into indicators values ('bcbbcdb4-702c-11ee-9113-c0e4349366ab', 'Samples', 'fine', '2023-10-17 16:30:00')"
|
|
|
|
"timestamp": "2023-10-17 14:30:00"] | "insert into indicators (id, type, values, timestamp) values ('bcbbcdb4-702c-11ee-9113-c0e4349366ab', 'Samples', 'fine', '2023-10-17 16:30:00')"
|
|
|
|
| new IndicatorRepository(dbc) || "SELECT type FROM indicators WHERE id = ? AND type='blood, blood'"
|
|
|
|
| new IndicatorRepository(manager) || "SELECT type FROM indicators WHERE id = ? AND type='blood, blood'"
|
|
|
|
"patient" | ["id": "bcbbcdb4-702c-11ee-9113-c0e4349366bb",
|
|
|
|
"patient" | ["id": "bcbbcdb4-702c-11ee-9113-c0e4349366bb",
|
|
|
|
"name": "Oleh",
|
|
|
|
"name": "Oleh",
|
|
|
|
"age": "21",
|
|
|
|
"age": "21",
|
|
|
|
"phone": "380123451234"] | "insert into patients values ('bcbbcdb4-702c-11ee-9113-c0e4349366bb', 'Maybe Oleh', 22, '380123451234')"
|
|
|
|
"phone": "380123451234"] | "insert into patients (id, name, age, phone) values ('bcbbcdb4-702c-11ee-9113-c0e4349366bb', 'Maybe Oleh', 22, '380123451234')"
|
|
|
|
| new PatientRepository(dbc) || "SELECT name FROM patients WHERE id = ? AND name='Oleh'"
|
|
|
|
| new PatientRepository(manager) || "SELECT name FROM patients WHERE id = ? AND name='Oleh'"
|
|
|
|
"department" | ["id": "bcbbcdb4-702c-11ee-9113-c0e4349366cb",
|
|
|
|
"department" | ["id": "bcbbcdb4-702c-11ee-9113-c0e4349366cb",
|
|
|
|
"name": "First department",
|
|
|
|
"name": "First department",
|
|
|
|
"location": "Stepan Bandera Street",
|
|
|
|
"location": "Stepan Bandera Street",
|
|
|
|
"phone": "380123451244"] | "insert into departments values ('bcbbcdb4-702c-11ee-9113-c0e4349366cb', 'Second department', 'Stepan Bandera Street', '380123451244')"
|
|
|
|
"phone": "380123451244"] | "insert into departments (id, name, location, phone) values ('bcbbcdb4-702c-11ee-9113-c0e4349366cb', 'Second department', 'Stepan Bandera Street', '380123451244')"
|
|
|
|
| new DepartmentRepository(dbc) || "SELECT name FROM departments WHERE id = ? AND name='First department'"
|
|
|
|
| new DepartmentRepository(manager) || "SELECT name FROM departments WHERE id = ? AND name='First department'"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
def "Test delete commands"() {
|
|
|
|
def "Test delete commands"() {
|
|
|
@ -157,11 +153,11 @@ class CommandEntitySpec extends Specification {
|
|
|
|
|
|
|
|
|
|
|
|
where:
|
|
|
|
where:
|
|
|
|
datatype | values | fixture | repository || verifyStatement
|
|
|
|
datatype | values | fixture | repository || verifyStatement
|
|
|
|
"indicator" | ["id": "bcbbcdb4-702c-11ee-9113-c0e4349366ab"] | "insert into indicators values ('bcbbcdb4-702c-11ee-9113-c0e4349366ab', 'Samples', 'fine', '2023-10-17 16:30:00')"
|
|
|
|
"indicator" | ["id": "bcbbcdb4-702c-11ee-9113-c0e4349366ab"] | "insert into indicators (id, type, values, timestamp) values ('bcbbcdb4-702c-11ee-9113-c0e4349366ab', 'Samples', 'fine', '2023-10-17 16:30:00')"
|
|
|
|
| new IndicatorRepository(dbc) || "SELECT type FROM indicators WHERE id = ?"
|
|
|
|
| new IndicatorRepository(manager) || "SELECT type FROM indicators WHERE id = ?"
|
|
|
|
"patient" | ["id": "bcbbcdb4-702c-11ee-9113-c0e4349366bb"] | "insert into patients values ('bcbbcdb4-702c-11ee-9113-c0e4349366bb', 'Maybe Oleh', 22, '380123451234')"
|
|
|
|
"patient" | ["id": "bcbbcdb4-702c-11ee-9113-c0e4349366bb"] | "insert into patients (id, name, age, phone) values ('bcbbcdb4-702c-11ee-9113-c0e4349366bb', 'Maybe Oleh', 22, '380123451234')"
|
|
|
|
| new PatientRepository(dbc) || "SELECT name FROM patients WHERE id = ?"
|
|
|
|
| new PatientRepository(manager) || "SELECT name FROM patients WHERE id = ?"
|
|
|
|
"department" | ["id": "bcbbcdb4-702c-11ee-9113-c0e4349366cb"] | "insert into departments values ('bcbbcdb4-702c-11ee-9113-c0e4349366cb', 'Second department', 'Stepan Bandera Street', '380123451244')"
|
|
|
|
"department" | ["id": "bcbbcdb4-702c-11ee-9113-c0e4349366cb"] | "insert into departments (id, name, location, phone) values ('bcbbcdb4-702c-11ee-9113-c0e4349366cb', 'Second department', 'Stepan Bandera Street', '380123451244')"
|
|
|
|
| new DepartmentRepository(dbc) || "SELECT name FROM departments WHERE id = ?"
|
|
|
|
| new DepartmentRepository(manager) || "SELECT name FROM departments WHERE id = ?"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|