package com.eswaraj.core.service.impl;
import java.io.InputStream;
import org.jmock.Expectations;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import com.eswaraj.core.BaseNeo4jEswarajTest;
import com.eswaraj.core.exceptions.ApplicationException;
import com.eswaraj.core.service.CustomService;
import com.eswaraj.core.service.FileService;
import com.eswaraj.core.service.LocationService;
import com.eswaraj.core.service.QueueService;
import com.eswaraj.web.dto.LocationBoundaryFileDto;
@ContextConfiguration(locations = { "classpath:eswaraj-core-test.xml" })
@RunWith(SpringJUnit4ClassRunner.class)
public class TestCustomServiceImpl extends BaseNeo4jEswarajTest{
@Autowired private CustomService customService;
/**
* Simple Test to save Location
* No parent Location id provided
* @throws ApplicationException
*/
@Test
public void test01_processLocationBoundaryFile() throws ApplicationException{
final LocationService locationService = mock(LocationService.class, "locationService");
final FileService fileService = mock(FileService.class, "fileService");
final QueueService queueService = mock(QueueService.class, "queueService");
final InputStream inputStream = mock(InputStream.class, "inputStream");
final LocationBoundaryFileDto locationBoundaryFileDto = new LocationBoundaryFileDto();
final long locationId = randomPositiveLong();
inject(customService, "locationService", locationService);
inject(customService, "fileService", fileService);
inject(customService, "queueService", queueService);
expect(new Expectations() {{
oneOf (locationService).createNewLocationBoundaryFile(locationId, inputStream, fileService);
will(returnValue(locationBoundaryFileDto));
oneOf (queueService).sendBoundaryfileMessage(locationBoundaryFileDto);
}});
customService.processLocationBoundaryFile(locationId, inputStream);
}
}