package net.techreadiness.batch.device; import net.techreadiness.service.BatchJobSchedulerService; import net.techreadiness.service.ServiceContext; import net.techreadiness.service.UserService; import net.techreadiness.service.exception.ValidationServiceException; import org.junit.Assert; import org.junit.Before; import org.junit.Test; import org.mockito.Matchers; import org.mockito.Mockito; import org.springframework.context.MessageSource; public class OrgFilterProcessorTest { private OrgFilterProcessor processor; @Before public void setup() { processor = Mockito.spy(new OrgFilterProcessor()); processor.messageSource = Mockito.mock(MessageSource.class); processor.userService = Mockito.mock(UserService.class); Mockito.doReturn(new ServiceContext()).when(processor).getServiceContext(); BatchJobSchedulerService jobService = Mockito.mock(BatchJobSchedulerService.class); Mockito.when(jobService.buildServiceContext(Matchers.<Long> any(), Matchers.<Long> any(), Matchers.<Long> any())) .thenReturn(new ServiceContext()); processor.setBatchJobSchedulerService(jobService); } @Test public void testAuthorizedOrg() throws Exception { DeviceData item = new DeviceData(); item.getDevice().getOrg().setLocalCode("local"); item.setStateCode("state"); Mockito.when( processor.userService.hasAccessToOrgByCode(Matchers.<ServiceContext> any(), Matchers.<Long> any(), Matchers.eq("state-local"))).thenReturn(Boolean.TRUE); Assert.assertNotNull(processor.process(item)); } @Test(expected = ValidationServiceException.class) public void testNotAuthorizedOrg() throws Exception { DeviceData item = new DeviceData(); item.getDevice().getOrg().setLocalCode("local"); item.setStateCode("state"); Mockito.when( processor.userService.hasAccessToOrgByCode(Matchers.<ServiceContext> any(), Matchers.<Long> any(), Matchers.anyString())).thenReturn(Boolean.FALSE); processor.process(item); } @Test public void testAuthorizedOrgTwice() throws Exception { DeviceData item = new DeviceData(); item.getDevice().getOrg().setLocalCode("local"); item.setStateCode("state"); Mockito.when( processor.userService.hasAccessToOrgByCode(Matchers.<ServiceContext> any(), Matchers.<Long> any(), Matchers.eq("state-local"))).thenReturn(Boolean.TRUE); Assert.assertNotNull(processor.process(item)); Assert.assertNotNull(processor.process(item)); } }