package org.ihtsdo.otf.refset.service;
import static org.junit.Assert.assertEquals;
import static org.mockito.Matchers.anyInt;
import static org.mockito.Matchers.anyString;
import static org.mockito.Mockito.doThrow;
import static org.mockito.Mockito.when;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import org.ihtsdo.otf.refset.domain.Refset;
import org.ihtsdo.otf.refset.exception.RefsetServiceException;
import org.joda.time.DateTime;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
public class RefsetBrowseServiceStubTest {
@InjectMocks
@Resource(name = "browseServiceStub")
private RefsetBrowseServiceStub service;
@Mock
private RefsetBrowseServiceStubData dataService;
@Mock
Refset refset;
@Mock
Map<String, org.springframework.core.io.Resource> csvs;
@Mock
List<Refset> refsets;
@Before
public void setUp() throws Exception {
MockitoAnnotations.initMocks(this);
when(refset.getUuid()).thenReturn("Junit_1");
when(refset.getDescription()).thenReturn("Junit Refset");
when(refset.getModuleId()).thenReturn("Junit_module_1");
when(refset.getMembers()).thenReturn(null);
when(refset.getCreated()).thenReturn(new DateTime());
when(refset.getCreatedBy()).thenReturn("Junit author");
dataService.setCsv(csvs);
when(dataService.getRefSet(anyString())).thenReturn(refset);
}
@After
public void tearDown() throws Exception {
}
@Test
public void testGetRefset() throws RefsetServiceException {
Refset result = service.getRefset("junit-1");
assertEquals(refset.getUuid(), result.getUuid());
assertEquals(refset.getModuleId(), result.getModuleId());
}
@Test(expected = RefsetServiceException.class)
public void testGetRefsetException() throws RefsetServiceException {
doThrow(new RefsetServiceException("Junit Test Exception")).when(dataService).getRefSet(anyString());
service.getRefset("junit-1");
}
@Test(expected = RefsetServiceException.class)
public void testGetRefsetsException() throws RefsetServiceException {
doThrow(new RefsetServiceException("Junit Test Exception")).when(dataService).getRefSets();
service.getRefsets(1, 10, false);
}
@Test
public void testGetRefsets() throws RefsetServiceException {
when(refsets.isEmpty()).thenReturn(false);
when(refsets.size()).thenReturn(1);
when(refsets.subList(anyInt(), anyInt())).thenReturn(refsets);
when(dataService.getRefSets()).thenReturn(refsets);
List<Refset> rs = service.getRefsets(1, 10, false);
assertEquals(false, rs.isEmpty());
assertEquals(1, rs.size());
}
}