package org.transgalactica.management.ws.logistics.endpoint;
import static org.junit.Assert.assertEquals;
import static org.mockito.Matchers.any;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import javax.validation.ValidationException;
import org.junit.Before;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.annotation.DirtiesContext;
import org.springframework.test.util.ReflectionTestUtils;
import org.transgalactica.fwk.remote.exception.RemoteBusinessException;
import org.transgalactica.fwk.test.util.SecurityContextTestUtils;
import org.transgalactica.fwk.validation.exception.BusinessException;
import org.transgalactica.management.business.logistics.service.HangarService;
import org.transgalactica.management.ws.AbstractWebTest;
import org.transgalactica.management.ws.logistics.data.BasicHangarDto;
public class HangarSeiTest extends AbstractWebTest {
@Autowired
private HangarSei sei;
@Before
public void setAnomymeInContext() {
SecurityContextTestUtils.setUsernamePasswordAuthenticationTokenInSecurityContext("usename", "password",
"ROLE_SUPER_GESTIONNAIRE");
}
@Test
public void testAppelService() throws RemoteBusinessException {
BasicHangarDto[] hangars = sei.rechercherHangars("Arakis");
assertEquals(1, hangars.length);
BasicHangarDto hangar = hangars[0];
assertEquals(new Long(2), hangar.getNumero());
assertEquals("Arakis", hangar.getLocalisation());
assertEquals(100, hangar.getNombreEmplacements());
}
@Test(expected = RemoteBusinessException.class)
@DirtiesContext
public void testAppelServiceErreurMetier() throws RemoteBusinessException {
HangarService hangarService = mock(HangarService.class);
when(hangarService.rechercherHangars(any())).thenThrow(new BusinessException("Test bigbadaboum!"));
ReflectionTestUtils.setField(sei, "hangarService", hangarService);
sei.rechercherHangars("et paf");
}
@Test(expected = ValidationException.class)
public void testAppelServiceErreurValidation() throws RemoteBusinessException {
sei.rechercherHangars(" ");
}
}