package org.transgalactica.management.business.logistics.service.config; import static org.transgalactica.management.business.logistics.service.mock.MockFactory.mockVaisseauEntity; import static org.transgalactica.management.business.logistics.service.mock.MockFactory.mockVaisseauSearchCriteria; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.security.access.AccessDeniedException; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.transgalactica.fwk.test.util.SecurityContextTestUtils; import org.transgalactica.management.business.logistics.TestConfig; import org.transgalactica.management.business.logistics.service.VaisseauService; @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(classes = TestConfig.class) public class VaisseauServiceConfigurationRolesTest { @Autowired @Qualifier("noOperationVaisseauService") private VaisseauService serviceVaisseau; private void setGestionnaireInContext() { SecurityContextTestUtils.setUsernamePasswordAuthenticationTokenInSecurityContext("gestionnaire", "xxx", "ROLE_GESTIONNAIRE"); } private void setSuperGestionnaireInContext() { SecurityContextTestUtils.setUsernamePasswordAuthenticationTokenInSecurityContext("superGestionnaire", "xxx", "ROLE_SUPER_GESTIONNAIRE"); } @Test public void testRechercherVaisseaux_RoleSuperGestionnaire() { setSuperGestionnaireInContext(); serviceVaisseau.rechercherVaisseaux(mockVaisseauSearchCriteria()); } @Test public void testRechercherVaisseaux_RoleGestionnaire() { setGestionnaireInContext(); serviceVaisseau.rechercherVaisseaux(mockVaisseauSearchCriteria()); } @Test(expected = AccessDeniedException.class) public void testChargerVaisseau_RoleAnomyme() { SecurityContextTestUtils.setAnomymeInContext(); serviceVaisseau.chargerVaisseau("mock"); } @Test public void testChargerVaisseau_RoleSuperGestionnaire() { setSuperGestionnaireInContext(); serviceVaisseau.chargerVaisseau("mock"); } @Test public void testChargerVaisseau_RoleGestionnaire() { setGestionnaireInContext(); serviceVaisseau.chargerVaisseau("mock"); } @Test(expected = AccessDeniedException.class) public void testEnregistrerVaisseau_RoleAnomyme() { SecurityContextTestUtils.setAnomymeInContext(); serviceVaisseau.enregistrerVaisseau(mockVaisseauEntity()); } @Test public void testEnregistrerVaisseau_RoleSuperGestionnaire() { setSuperGestionnaireInContext(); serviceVaisseau.enregistrerVaisseau(mockVaisseauEntity()); } @Test(expected = AccessDeniedException.class) public void testEnregistrerVaisseau_RoleGestionnaire() { setGestionnaireInContext(); serviceVaisseau.enregistrerVaisseau(mockVaisseauEntity()); } @Test(expected = AccessDeniedException.class) public void testSupprimerVaisseau_RoleAnomyme() { SecurityContextTestUtils.setAnomymeInContext(); serviceVaisseau.supprimerVaisseau(mockVaisseauEntity()); } @Test public void testSupprimerVaisseau_RoleSuperGestionnaire() { setSuperGestionnaireInContext(); serviceVaisseau.supprimerVaisseau(mockVaisseauEntity()); } @Test(expected = AccessDeniedException.class) public void testSupprimerVaisseau_RoleGestionnaire() { setGestionnaireInContext(); serviceVaisseau.supprimerVaisseau(mockVaisseauEntity()); } }