ItEr40S22CUAsignarUsuarioAProxectoTraballo: Implemented the relations between the subclasses of OrderAuthorization and User/Profile

This commit is contained in:
Jacobo Aragunde Pérez 2009-12-30 21:43:47 +01:00 committed by Javier Moran Rua
parent 22c788e779
commit d98a82f143
4 changed files with 68 additions and 0 deletions

View file

@ -27,6 +27,8 @@ package org.navalplanner.business.users.entities;
*/
public class ProfileOrderAuthorization extends OrderAuthorization {
private Profile profile;
/**
* Necessary for Hibernate.
*/
@ -43,4 +45,12 @@ public class ProfileOrderAuthorization extends OrderAuthorization {
public static ProfileOrderAuthorization create(OrderAuthorizationType type) {
return create(new ProfileOrderAuthorization(type));
}
public void setProfile(Profile profile) {
this.profile = profile;
}
public Profile getProfile() {
return profile;
}
}

View file

@ -27,6 +27,8 @@ package org.navalplanner.business.users.entities;
*/
public class UserOrderAuthorization extends OrderAuthorization {
private User user;
/**
* Necessary for Hibernate.
*/
@ -43,4 +45,12 @@ public class UserOrderAuthorization extends OrderAuthorization {
public static UserOrderAuthorization create(OrderAuthorizationType type) {
return create(new UserOrderAuthorization(type));
}
public void setUser(User user) {
this.user = user;
}
public User getUser() {
return user;
}
}

View file

@ -82,9 +82,11 @@
</property>
<subclass name="UserOrderAuthorization" discriminator-value="USER">
<many-to-one name="user" class="User" column="USER_ID" />
</subclass>
<subclass name="ProfileOrderAuthorization" discriminator-value="PROFILE">
<many-to-one name="profile" class="Profile" column="PROFILE_ID" />
</subclass>
</class>

View file

@ -26,14 +26,23 @@ import static org.junit.Assert.assertNotNull;
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;
import org.junit.runner.RunWith;
import org.navalplanner.business.common.exceptions.InstanceNotFoundException;
import org.navalplanner.business.users.daos.IOrderAuthorizationDAO;
import org.navalplanner.business.users.daos.IProfileDAO;
import org.navalplanner.business.users.daos.IUserDAO;
import org.navalplanner.business.users.entities.OrderAuthorization;
import org.navalplanner.business.users.entities.OrderAuthorizationType;
import org.navalplanner.business.users.entities.Profile;
import org.navalplanner.business.users.entities.ProfileOrderAuthorization;
import org.navalplanner.business.users.entities.User;
import org.navalplanner.business.users.entities.UserOrderAuthorization;
import org.navalplanner.business.users.entities.UserRole;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@ -54,6 +63,12 @@ public class OrderAuthorizationDAOTest {
@Autowired
IOrderAuthorizationDAO orderAuthorizationDAO;
@Autowired
IUserDAO userDAO;
@Autowired
IProfileDAO profileDAO;
private UserOrderAuthorization createValidUserOrderAuthorization() {
return UserOrderAuthorization.create(OrderAuthorizationType.READ_AUTHORIZATION);
}
@ -62,6 +77,17 @@ public class OrderAuthorizationDAOTest {
return ProfileOrderAuthorization.create(OrderAuthorizationType.READ_AUTHORIZATION);
}
private User createValidUser() {
String loginName = UUID.randomUUID().toString();
return User.create(loginName, loginName, new HashSet<UserRole>());
}
private Profile createValidProfile() {
Set<UserRole> roles = new HashSet<UserRole>();
roles.add(UserRole.ROLE_BASIC_USER);
return Profile.create(UUID.randomUUID().toString(), roles);
}
@Test
public void testInSpringContainer() {
assertNotNull(orderAuthorizationDAO);
@ -100,4 +126,24 @@ public class OrderAuthorizationDAOTest {
orderAuthorizationDAO.save(profileOrderAuthorization);
assertEquals(previous + 2, orderAuthorizationDAO.list(OrderAuthorization.class).size());
}
@Test
public void testNavigateFromOrderAuthorizationToUser() {
User user = createValidUser();
userDAO.save(user);
UserOrderAuthorization userOrderAuthorization = createValidUserOrderAuthorization();
userOrderAuthorization.setUser(user);
orderAuthorizationDAO.save(userOrderAuthorization);
assertEquals(user.getId(), userOrderAuthorization.getUser().getId());
}
@Test
public void testNavigateFromOrderAuthorizationToProfile() {
Profile profile = createValidProfile();
profileDAO.save(profile);
ProfileOrderAuthorization profileOrderAuthorization = createValidProfileOrderAuthorization();
profileOrderAuthorization.setProfile(profile);
orderAuthorizationDAO.save(profileOrderAuthorization);
assertEquals(profile.getId(), profileOrderAuthorization.getProfile().getId());
}
}