ItEr41S25CUAltaSubcontrataItEr30S08: Implemented the relation with User

This commit is contained in:
Jacobo Aragunde Pérez 2010-01-04 15:58:23 +01:00 committed by Javier Moran Rua
parent 64ec409550
commit 78b005d3f9
2 changed files with 52 additions and 0 deletions

View file

@ -26,6 +26,8 @@
<property name="ourCompanyLogin" />
<property name="ourCompanyPassword" />
<many-to-one name="companyUser" class="org.navalplanner.business.users.entities.User" />
</class>
</hibernate-mapping>

View file

@ -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<Void> saveEntities = new IOnTransaction<Void>() {
@Override
public Void execute() {
userDAO.save(user);
externalCompanyDAO.save(externalCompany);
return null;
}
};
transactionService.runOnTransaction(saveEntities);
IOnTransaction<Void> retrieveEntitiesInOtherTransaction = new IOnTransaction<Void>() {
@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<UserRole> roles = new HashSet<UserRole>();
return User.create(UUID.randomUUID().toString(),
UUID.randomUUID().toString(), roles);
}
}