Skip to content
Snippets Groups Projects
Commit 040d00d7 authored by Alexander Görlitz's avatar Alexander Görlitz
Browse files

Updated opStaffsInOperationTeams and created the testMethods

parent b585b422
No related branches found
No related tags found
No related merge requests found
......@@ -90,11 +90,13 @@ public interface Repository {
OperationTeam deleteOperationTeam(Id<OperationTeam> id) throws SQLException;
Id<String> opStaffsInOperationTeamsId();
//Id<String> opStaffsInOperationTeamsId();
Optional<Map<OperationTeam, OPStaff>> findOPStaffsInOperationTeam(Id<String> id);
//Optional<Map<OperationTeam, OPStaff>> findOPStaffsInOperationTeam(Id<String> id);
Boolean assignOPStaffToOperationTeam(Id<OperationTeam> operationTeamId, Id<OPStaff> opStaffId);
Boolean findOperationTeamOPStaffImpl(Id<OperationTeam> operationTeamId, Id<OPStaff> opStaffId);
......
......@@ -88,12 +88,12 @@ class JDBCRepository implements Repository
*/
private static final String CREATE_OP_STAFF_IN_OPERATION_TEAM_TABLE = """
CREATE TABLE IF NOT EXISTS opStaffsInOperationTeams(
id VARCHAR(50) PRIMARY KEY,
operationTeamId VARCHAR(50),
opStaffId VARCHAR(50),
lastUpdate TIMESTAMP NOT NULL,
FOREIGN KEY (operationTeamId) REFERENCES operationTeams(id),
FOREIGN KEY (opStaffId) REFERENCES opStaffs(id)
FOREIGN KEY (opStaffId) REFERENCES opStaffs(id),
PRIMARY KEY (operationTeamId, opStaffId)
);
""";
......@@ -245,9 +245,8 @@ class JDBCRepository implements Repository
private String insertSQL(Id<OperationTeam> operationTeamId, Id<OPStaff> opStaffId) {
return
"INSERT INTO opStaffsInOperationTeams(" +
"id,operationTeamId,opStaffId,lastUpdate" +
"operationTeamId,opStaffId,lastUpdate" +
") VALUES (" +
sqlValue(opStaffsInOperationTeamsId()) + "," +
sqlValue(operationTeamId.value()) + "," +
sqlValue(opStaffId.value()) + "," +
sqlValue(Instant.now()) +
......@@ -659,13 +658,15 @@ class JDBCRepository implements Repository
return null;
}
/*
@Override
public Id<String> opStaffsInOperationTeamsId() {
var id = new Id<String>(randomUUID().toString());
return findOPStaffsInOperationTeam(id).isEmpty() ? id : opStaffsInOperationTeamsId();
}
*/
/*
@Override
public Optional<Map<OperationTeam, OPStaff>> findOPStaffsInOperationTeam(Id<String> id) {
try (
......@@ -698,7 +699,7 @@ class JDBCRepository implements Repository
} catch (SQLException e){
throw new RuntimeException(e);
}
}
}*/
@Override
public Boolean assignOPStaffToOperationTeam(Id<OperationTeam> operationTeamId, Id<OPStaff> opStaffId) {
......@@ -799,6 +800,32 @@ class JDBCRepository implements Repository
}
}
public Boolean findOperationTeamOPStaffImpl(Id<OperationTeam> operationTeamId, Id<OPStaff> opStaffId){
try(
var result =
conn.createStatement()
.executeQuery("SELECT DISTINCT opStaffs.id, opStaffs.role, opStaffs.specialty, opStaffs.lastupdate " +
"FROM opStaffs " +
"JOIN opStaffsInOperationTeams " +
"ON (opStaffs.id = opStaffsInOperationTeams.opstaffid) " +
"WHERE opStaffsInOperationTeams.operationteamid = '"+operationTeamId.value()+"'" +
"AND opStaffsInOperationTeams.opStaffId = '"+opStaffId.value()+"';");
//SELECT DISTINCT opStaffs.id, opStaffs.role, opStaffs.specialty, opStaffs.lastupdate FROM opStaffs JOIN opStaffsInOperationTeams ON (opStaffs.id = '4444') WHERE opStaffsInOperationTeams.operationteamid = '31';S
) {
//SELECT DISTINCT opstaff.id, opstaff.role, opstaff.specialty, opstaff.lastupdate, teammember.operationteamid FROM opstaff JOIN teammember ON (opstaff.id = teammember.opstaffid);
//SELECT DISTINCT opstaff.id, opstaff.role, opstaff.specialty, opstaff.lastupdate, teammember.operationteamid FROM opstaff JOIN teammember ON (opstaff.id = teammember.opstaffid) WHERE teammember.operationteamid= '31313131';
while (result.next()) {
return true;
}
return false;
}catch(SQLException e){
throw new RuntimeException(e);
}
}
//endregion
......
......@@ -267,6 +267,28 @@ public final class Tests
assertTrue(result);
}
@Test
public void testAssignStaffToOperationTeamProcess() throws Exception {
OPStaff.CreateOPStaff createOPStaffCommand = new OPStaff.CreateOPStaff(
Role.SURGEON,
Specialty.Gastroenterology
);
OPStaff createdOPStaff = opStaffService.process(createOPStaffCommand);
OperationTeam.AssignStaff operationTeamCommand = new OperationTeam.AssignStaff(
testOperationTeam.id(),
createdOPStaff
);
OperationTeam returnedOperationTeam = operationTeamService.process(operationTeamCommand);
Boolean result = repo.findOperationTeamOPStaffImpl(returnedOperationTeam.id(),createdOPStaff.id());
assertTrue(result);
}
//@Test
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment