diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/users/entities/ProfileOrderAuthorization.java b/navalplanner-business/src/main/java/org/navalplanner/business/users/entities/ProfileOrderAuthorization.java index 1b64bc8ee..e94896943 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/users/entities/ProfileOrderAuthorization.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/users/entities/ProfileOrderAuthorization.java @@ -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; + } } diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/users/entities/UserOrderAuthorization.java b/navalplanner-business/src/main/java/org/navalplanner/business/users/entities/UserOrderAuthorization.java index 4e6ca7d52..50f90e047 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/users/entities/UserOrderAuthorization.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/users/entities/UserOrderAuthorization.java @@ -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; + } } diff --git a/navalplanner-business/src/main/resources/org/navalplanner/business/users/entities/Users.hbm.xml b/navalplanner-business/src/main/resources/org/navalplanner/business/users/entities/Users.hbm.xml index 6ff6a17fe..a797ac8b5 100644 --- a/navalplanner-business/src/main/resources/org/navalplanner/business/users/entities/Users.hbm.xml +++ b/navalplanner-business/src/main/resources/org/navalplanner/business/users/entities/Users.hbm.xml @@ -82,9 +82,11 @@ + + diff --git a/navalplanner-business/src/test/java/org/navalplanner/business/test/users/daos/OrderAuthorizationDAOTest.java b/navalplanner-business/src/test/java/org/navalplanner/business/test/users/daos/OrderAuthorizationDAOTest.java index 8a70ef32d..0e1e80a26 100644 --- a/navalplanner-business/src/test/java/org/navalplanner/business/test/users/daos/OrderAuthorizationDAOTest.java +++ b/navalplanner-business/src/test/java/org/navalplanner/business/test/users/daos/OrderAuthorizationDAOTest.java @@ -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()); + } + + private Profile createValidProfile() { + Set roles = new HashSet(); + 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()); + } }