/**
* Copyright (C) Intersect 2012.
*
* This module contains Proprietary Information of Intersect,
* and should be treated as Confidential.
*/
package au.org.intersect.exsite9.jobs;
import static org.junit.Assert.*;
import java.io.File;
import java.io.IOException;
import java.util.List;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
import org.junit.Test;
import org.mockito.Mockito;
import com.google.common.base.Charsets;
import com.google.common.io.Files;
import au.org.intersect.exsite9.dao.DAOTest;
import au.org.intersect.exsite9.dao.FieldOfResearchDAO;
import au.org.intersect.exsite9.domain.FieldOfResearch;
/**
* Tests {@link InsertFieldsOfResearchJob}
*/
public final class InsertFieldsOfResearchJobUnitTest extends DAOTest
{
private static final String NEW_LINE = System.getProperty("line.separator");
@Test
public void test() throws IOException
{
final File sqlFile = File.createTempFile("sqlFile", "sql");
sqlFile.deleteOnExit();
final String forSQL = "INSERT INTO FIELDOFRESEARCH(code,name) VALUES('010000','Mathematical Sciences')" + NEW_LINE +
"INSERT INTO FIELDOFRESEARCH(code,name) VALUES('010100','Pure Mathematics')";
Files.write(forSQL, sqlFile, Charsets.UTF_8);
final IProgressMonitor progressMonitor = Mockito.mock(IProgressMonitor.class);
final InsertFieldsOfResearchJob toTest = new InsertFieldsOfResearchJob(super.emf, sqlFile);
final IStatus status = toTest.run(progressMonitor);
assertEquals(Status.OK_STATUS, status);
final FieldOfResearchDAO forDAO = new FieldOfResearchDAO(createEntityManager());
final List<FieldOfResearch> inserted = forDAO.getAll();
assertEquals(2, inserted.size());
final FieldOfResearch for1 = inserted.get(0);
final FieldOfResearch for2 = inserted.get(1);
assertEquals("010000", for1.getCode());
assertEquals("Mathematical Sciences", for1.getName());
assertEquals("010100", for2.getCode());
assertEquals("Pure Mathematics", for2.getName());
}
}