package com.stratio.deep.jdbc.extractor;
import com.stratio.deep.commons.config.ExtractorConfig;
import com.stratio.deep.commons.entity.Cells;
import com.stratio.deep.commons.extractor.utils.ExtractorConstants;
import com.stratio.deep.jdbc.config.JdbcConfigFactory;
import com.stratio.deep.jdbc.config.JdbcDeepJobConfig;
import com.stratio.deep.jdbc.reader.JdbcReader;
import com.stratio.deep.jdbc.writer.JdbcWriter;
import org.mockito.Mockito;
import org.mockito.internal.util.reflection.Whitebox;
import org.neo4j.jdbc.Driver;
import org.powermock.api.mockito.PowerMockito;
import org.testng.annotations.Test;
import java.util.HashMap;
import java.util.Map;
import static org.mockito.Matchers.any;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
/**
* Created by mariomgal on 26/01/15.
*/
@Test(groups = { "UnitTests" })
public class JdbcNeo4JNativeExtractorTest {
private static final String HOST = "localhost";
private static final int PORT = 3306;
private static final Class DRIVER_CLASS = Driver.class;
private static final String DATABASE = "NEO4J";
private static final String TABLE = "table";
private JdbcReader jdbcReader = PowerMockito.mock(JdbcReader.class);
private JdbcWriter jdbcWriter = PowerMockito.mock(JdbcWriter.class);
@Test
public void testHasNext() throws Exception {
JdbcNativeExtractor extractor = createJdbcNativeExtractor();
extractor.hasNext();
verify(jdbcReader, times(1)).hasNext();
}
@Test
public void testSaveRdd() throws Exception {
JdbcNativeExtractor extractor = createJdbcNativeExtractor();
doReturn(new HashMap()).when(extractor).transformElement(any(Object.class));
extractor.saveRDD(new Object());
verify(jdbcWriter, times(1)).save(any(Map.class));
}
@Test
public void testClose() throws Exception {
JdbcNativeExtractor extractor = createJdbcNativeExtractor();
extractor.close();
verify(jdbcWriter, times(1)).close();
verify(jdbcReader, times(1)).close();
}
private JdbcNativeExtractor createJdbcNativeExtractor() {
JdbcNativeExtractor extractor = PowerMockito.mock(JdbcNativeExtractor.class, Mockito.CALLS_REAL_METHODS);
Whitebox.setInternalState(extractor, "jdbcDeepJobConfig", new JdbcDeepJobConfig<>(Cells.class));
Whitebox.setInternalState(extractor, "jdbcReader", jdbcReader);
Whitebox.setInternalState(extractor, "jdbcWriter", jdbcWriter);
return extractor;
}
}