package eu.dnetlib.enabling.database;

import static org.mockito.Mockito.verify;

import java.util.Date;

import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.runners.MockitoJUnit44Runner;

@RunWith(MockitoJUnit44Runner.class)
public class DatabaseServiceImplTest {
	
	private static final String DBNAME = "THE_DB";
	private static final String TABLENAME = "THE_TABLE";
	
	
	// Class under test
	private DatabaseServiceImpl impl;
	@Mock
	private DatabaseServiceCore core;

	
	@Before
	public void setUp() throws Exception {
		impl = new DatabaseServiceImpl();
		impl.setCore(core);
	}

	@Test
	public void testDumpTable() {
		impl.dumpTable(DBNAME, TABLENAME);
		verify(core).generateResultSet(DBNAME, TABLENAME, null);
	}

	@Test
	public void testDumpTableAndLogs() {
		Date d1 = new Date(100000);
		Date d2 = new Date(200000);
		impl.dumpTableAndLogs(DBNAME, TABLENAME, d1, d2);
		verify(core).generateResultSet(DBNAME, TABLENAME, d1, d2);
	}
}
