dnet-core/dnet-core-services/src/test/java/eu/dnetlib/enabling/resultset/ResultSetServiceImplTest.java

102 lines
2.4 KiB
Java

package eu.dnetlib.enabling.resultset;
import static org.junit.Assert.*; // NOPMD
import static org.mockito.Mockito.*; // NOPMD
import java.util.HashMap;
import java.util.Map;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.junit.MockitoJUnitRunner;
import eu.dnetlib.enabling.resultset.rmi.ResultSetException;
/**
* resultset service rmi implementation test.
*
* @author marko
*
*/
@RunWith(MockitoJUnitRunner.class)
public class ResultSetServiceImplTest {
/**
* mock resultset id.
*/
private static final String RS_ID = "123";
/**
* instance under test.
*/
private transient ResultSetServiceImpl service;
/**
* custom property dao mock.
*/
@Mock
private transient ResultSetPropertyDao customPropertyDao;
/**
* resultset registry mock.
*/
@Mock
private transient ResultSetRegistry resultsetRegistry;
/**
* resultset instance mock.
*/
@Mock
private transient ResultSet resultSet;
/**
* setup.
*/
@Before
public void setUp() {
service = new ResultSetServiceImpl();
service.setCustomPropertyDao(customPropertyDao);
service.setResultsetRegistry(resultsetRegistry);
when(resultsetRegistry.getResultSetById(RS_ID)).thenReturn(resultSet);
when(resultSet.getIdentifier()).thenReturn(RS_ID);
}
/**
* test get property.
* @throws ResultSetException shouldn't happen
*/
@Test
public void testGetProperty() throws ResultSetException {
final Map<String, String> properties = new HashMap<String, String>();
properties.put("prefetch", "true");
when(customPropertyDao.getProperties(resultSet)).thenReturn(properties);
when(resultSet.getNumberOfResults()).thenReturn(1);
assertEquals("test builtin", "1", service.getProperty(RS_ID, "total"));
assertEquals("test builtin", RS_ID, service.getProperty(RS_ID, "rsId"));
assertEquals("test custom", "true", service.getProperty(RS_ID, "prefetch"));
assertNull("test custom", service.getProperty(RS_ID, "unexistent"));
}
/**
* get resultset status.
*
* @throws ResultSetException shouldn't happen
*/
@Test
public void testGetRSStatus() throws ResultSetException {
when(resultSet.isOpen()).thenReturn(true);
assertEquals("check open", service.getRSStatus(RS_ID), "open");
when(resultSet.isOpen()).thenReturn(false);
assertEquals("check closed", service.getRSStatus(RS_ID), "closed");
}
}