From 78b005d3f9a1d689a3a9a617582a2323de4b8eb2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jacobo=20Aragunde=20P=C3=A9rez?= Date: Mon, 4 Jan 2010 15:58:23 +0100 Subject: [PATCH] ItEr41S25CUAltaSubcontrataItEr30S08: Implemented the relation with User --- .../entities/ExternalCompanies.hbm.xml | 2 + .../daos/ExternalCompanyDAOTest.java | 50 +++++++++++++++++++ 2 files changed, 52 insertions(+) diff --git a/navalplanner-business/src/main/resources/org/navalplanner/business/externalcompanies/entities/ExternalCompanies.hbm.xml b/navalplanner-business/src/main/resources/org/navalplanner/business/externalcompanies/entities/ExternalCompanies.hbm.xml index 0b5d8f24d..1e6a8cc6a 100644 --- a/navalplanner-business/src/main/resources/org/navalplanner/business/externalcompanies/entities/ExternalCompanies.hbm.xml +++ b/navalplanner-business/src/main/resources/org/navalplanner/business/externalcompanies/entities/ExternalCompanies.hbm.xml @@ -26,6 +26,8 @@ + + diff --git a/navalplanner-business/src/test/java/org/navalplanner/business/test/externalcompanies/daos/ExternalCompanyDAOTest.java b/navalplanner-business/src/test/java/org/navalplanner/business/test/externalcompanies/daos/ExternalCompanyDAOTest.java index aa151a3a3..03ad1ff4a 100644 --- a/navalplanner-business/src/test/java/org/navalplanner/business/test/externalcompanies/daos/ExternalCompanyDAOTest.java +++ b/navalplanner-business/src/test/java/org/navalplanner/business/test/externalcompanies/daos/ExternalCompanyDAOTest.java @@ -24,9 +24,12 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; import static org.navalplanner.business.BusinessGlobalNames.BUSINESS_SPRING_CONFIG_FILE; import static org.navalplanner.business.test.BusinessGlobalNames.BUSINESS_SPRING_CONFIG_TEST_FILE; +import java.util.HashSet; +import java.util.Set; import java.util.UUID; import org.junit.Test; @@ -37,6 +40,9 @@ import org.navalplanner.business.common.exceptions.InstanceNotFoundException; import org.navalplanner.business.common.exceptions.ValidationException; import org.navalplanner.business.externalcompanies.daos.IExternalCompanyDAO; import org.navalplanner.business.externalcompanies.entities.ExternalCompany; +import org.navalplanner.business.users.daos.IUserDAO; +import org.navalplanner.business.users.entities.User; +import org.navalplanner.business.users.entities.UserRole; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.annotation.NotTransactional; import org.springframework.test.context.ContextConfiguration; @@ -58,6 +64,9 @@ public class ExternalCompanyDAOTest { @Autowired IExternalCompanyDAO externalCompanyDAO; + @Autowired + IUserDAO userDAO; + @Autowired private IAdHocTransactionService transactionService; @@ -89,6 +98,41 @@ public class ExternalCompanyDAOTest { assertEquals(previous + 1, externalCompanyDAO.list(ExternalCompany.class).size()); } + @Test + @NotTransactional + public void testRelationWithUser() throws InstanceNotFoundException { + final User user = createValidUser(); + final ExternalCompany externalCompany = createValidExternalCompany(); + externalCompany.setCompanyUser(user); + + IOnTransaction saveEntities = new IOnTransaction() { + + @Override + public Void execute() { + userDAO.save(user); + externalCompanyDAO.save(externalCompany); + return null; + } + }; + transactionService.runOnTransaction(saveEntities); + + IOnTransaction retrieveEntitiesInOtherTransaction = new IOnTransaction() { + + @Override + public Void execute() { + try{ + ExternalCompany retrievedCompany = externalCompanyDAO.find(externalCompany.getId()); + assertEquals(user.getLoginName(), retrievedCompany.getCompanyUser().getLoginName()); + } + catch (InstanceNotFoundException e) { + fail("Unexpected InstanceNotFoundException"); + } + return null; + } + }; + transactionService.runOnTransaction(retrieveEntitiesInOtherTransaction); + } + @Test public void testFindUniqueByName() throws InstanceNotFoundException { ExternalCompany externalCompany = createValidExternalCompany(); @@ -153,4 +197,10 @@ public class ExternalCompanyDAOTest { return ExternalCompany.create(UUID.randomUUID().toString(), UUID.randomUUID().toString()); } + + private User createValidUser() { + Set roles = new HashSet(); + return User.create(UUID.randomUUID().toString(), + UUID.randomUUID().toString(), roles); + } }