added null check if supervisor cant be retrieved from daisy identifier and small unit test for keyword dao
This commit is contained in:
parent
147fc92f25
commit
9cf5853a6b
src
main/java/se/su/dsv/scipro/io/facade
test/java/se/su/dsv/scipro/match/dao
@ -417,6 +417,7 @@ public class ImporterFacade {
|
||||
public void addUnitToSupervisor(PersonDTO supervisorDTO, UnitDTO unitDTO) {
|
||||
User supervisorUser = userDao.getUserByIdentifier(supervisorDTO.id);
|
||||
Employee supervisor = supervisorDao.getFrom(supervisorUser);
|
||||
if(supervisor!=null){
|
||||
List<Keyword> currentUnits = supervisor.getKeywords().getFiltered(keywordTypeDao.findByType(KeywordTypeDao.TYPE.UNIT));
|
||||
//If supervisor is already assigned to a unit, remove to make sure only the latest unit is being added since we only allow one unit in Scipro.
|
||||
//Supervisor is not going to be allowed to have more than one unit in the future, but some have two in Daisy at the moment.
|
||||
@ -425,8 +426,11 @@ public class ImporterFacade {
|
||||
supervisor.getKeywords().getAll().removeAll(currentUnits);
|
||||
}
|
||||
Keyword unitToAdd = keywordDao.getKeywordByIdentifierAndType(unitDTO.id, keywordTypeDao.findByType(KeywordTypeDao.TYPE.UNIT));
|
||||
logger.info("Adding unit: " + unitToAdd.getKeyword() + " to supervisor: " + supervisor.getUser().getFullName());
|
||||
logger.debug("Adding unit: " + unitToAdd.getKeyword() + " to supervisor: " + supervisor.getUser().getFullName());
|
||||
supervisor.getKeywords().getAll().add(unitToAdd);
|
||||
} else {
|
||||
logger.debug("Can't find supervisor: "+ supervisorDTO.id);
|
||||
}
|
||||
}
|
||||
|
||||
private void mergeLinkedResearchAreas(final User user, final Set<ResearchAreaDTO> areas){
|
||||
@ -466,7 +470,7 @@ public class ImporterFacade {
|
||||
//Delete areas that not exist on remote
|
||||
for (Keyword areaToRemove : areasToRemove){
|
||||
keywordDao.delete(areaToRemove);
|
||||
logger.info("Deleted research area: " + areaToRemove.getKeyword() + " since it has been removed from remote system");
|
||||
logger.debug("Deleted research area: " + areaToRemove.getKeyword() + " since it has been removed from remote system");
|
||||
}
|
||||
//Add areas to database
|
||||
for(final ResearchAreaDTO researchAreaDTO : remoteAreas){
|
||||
@ -504,7 +508,7 @@ public class ImporterFacade {
|
||||
//Delete units that not exist on remote
|
||||
for (Keyword unitToRemove : unitsToRemove){
|
||||
keywordDao.delete(unitToRemove);
|
||||
logger.info("Deleted unit: " + unitToRemove.getKeyword() + " since it has been removed from remote system");
|
||||
logger.debug("Deleted unit: " + unitToRemove.getKeyword() + " since it has been removed from remote system");
|
||||
}
|
||||
//Add units to database
|
||||
for(final UnitDTO unitDTO : remoteUnits){
|
||||
|
@ -56,6 +56,7 @@ public class TestKeywordDao {
|
||||
keyword2 = keywordDao.save(keyword2);
|
||||
|
||||
keyword3 = new Keyword("Key 3", other);
|
||||
keyword3.setIdentifier(1L);
|
||||
keyword3 = keywordDao.save(keyword3);
|
||||
|
||||
target = keywordDao;
|
||||
@ -83,4 +84,15 @@ public class TestKeywordDao {
|
||||
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
@Rollback
|
||||
public void testShouldOnlyGetKeywordByCorrectIdentifierAndType() {
|
||||
Keyword nullKey = target.getKeywordByIdentifierAndType(2L, other);
|
||||
Assert.assertNull(nullKey);
|
||||
|
||||
Keyword correctKey = target.getKeywordByIdentifierAndType(1L, other);
|
||||
Assert.assertEquals(keyword3, correctKey);
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user