package org.unitils.dbmaintainer.locator; import java.net.URL; import java.util.ArrayList; import java.util.List; import java.util.Properties; import org.easymock.EasyMock; import org.junit.Assert; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.unitils.UnitilsJUnit4TestClassRunner; import org.unitils.core.Unitils; import org.unitils.dbmaintainer.locator.resourcepickingstrategie.ResourcePickingStrategie; import org.unitils.dbmaintainer.script.Script; import org.unitils.easymock.EasyMockUnitils; import org.unitils.easymock.annotation.Mock; import org.unitils.inject.annotation.TestedObject; /** * Will test finding scripts on the classpath. * * @author tdr * * @since 1.0.2 * */ @RunWith(UnitilsJUnit4TestClassRunner.class) public class ClassPathScriptLocatorTest { @TestedObject private ClassPathScriptLocator classPathScriptLocator; @Mock private ResourcePickingStrategie resourcePickingStrategie; private Properties configuration; private List<URL> urlList; private String scriptDir = "/org/unitils/dbunit/testdbscripts/"; /** * @throws Exception */ @Before public void setUp() throws Exception { urlList = new ArrayList<URL>(); urlList.add(getClass().getResource(scriptDir + "001_Initial_TESTcreate.sql")); urlList.add(getClass().getResource(scriptDir + "002_Initial_TESTcreate.sql")); urlList.add(getClass().getResource(scriptDir + "003_Initial_TESTcreate.sql")); Assert.assertFalse("Some of the needed resources is not found", urlList.contains(null)); configuration = Unitils.getInstance().getConfiguration(); } /*** */ @Test public void loadScriptsTest() { String path = "/org/unitils/dbunit/testdbscripts/"; List<Script> scriptList = new ArrayList<Script>(); List<String> scriptExtensions = new ArrayList<String>(); scriptExtensions.add(".sql"); EasyMock.expect(resourcePickingStrategie.filter((List<URL>) EasyMock.anyObject(), (String) EasyMock.anyObject())).andReturn(urlList); EasyMockUnitils.replay(); classPathScriptLocator = new ClassPathScriptLocator(); classPathScriptLocator.loadScripts(scriptList, path, resourcePickingStrategie, scriptExtensions, "users", true, configuration); Assert.assertTrue(classPathScriptLocator.scriptList.size() == 3); } }