package org.unitils.dbmaintainer.resourcepickingstrategie; import java.io.File; import java.io.IOException; import java.net.MalformedURLException; import java.net.URL; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import org.junit.Assert; import org.junit.Ignore; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.unitils.UnitilsJUnit4TestClassRunner; import org.unitils.dbmaintainer.locator.resourcepickingstrategie.impl.UniqueMostRecentPickingStrategie; import org.unitils.reflectionassert.ReflectionAssert; /** * Test {@link UniqueMostRecentPickingStrategie}. * * @author wiw * * @since 3.4 * */ @RunWith(UnitilsJUnit4TestClassRunner.class) public class ResourcePickingStrategieTest { private String pathSeperator; private UniqueMostRecentPickingStrategie strategy; @Before public void init() { strategy = new UniqueMostRecentPickingStrategie(); if (System.getProperty("os.name").startsWith("Windows")) { pathSeperator = "\\"; } else { pathSeperator = "/"; } } @Test public void testAddMostRecentDuplicateFile() throws IOException { List<URL> filteredResources = new ArrayList<URL>(); File file1 = new File("src/test/resources/org/unitils/dbunit/test1/testFile.txt"); URL urlFile1 = new URL("file:///" + file1.getAbsolutePath()); filteredResources.add(urlFile1); String resourceSearchName = file1.getAbsolutePath().substring(file1.getAbsolutePath().lastIndexOf(pathSeperator) + 1); strategy.addMostRecent(filteredResources, urlFile1, resourceSearchName); Assert.assertEquals(1, filteredResources.size()); ReflectionAssert.assertLenientEquals(Arrays.asList(urlFile1), filteredResources); } @Ignore @Test public void testAddMostRecentDifferentFiles() throws Exception { List<URL> filteredResources = new ArrayList<URL>(); File file1 = new File("src/test/resources/org/unitils/dbunit/test1/testFile.txt"); File file2 = new File("src/test/resources/org/unitils/dbunit/test2/testFile.txt"); URL urlFile1 = new URL("file:///" + file1.getAbsolutePath()); URL urlFile2 = new URL("file:///" + file2.getAbsolutePath()); filteredResources.add(urlFile1); String resourceSearchName = file1.getAbsolutePath().substring(file1.getAbsolutePath().lastIndexOf(pathSeperator) + 1); strategy.addMostRecent(filteredResources, urlFile2, resourceSearchName); Assert.assertEquals(1, filteredResources.size()); ReflectionAssert.assertLenientEquals(Arrays.asList(urlFile2), filteredResources); } @Test public void testAddMostRecentEmptyFilteredResources() throws Exception { List<URL> filteredResources = new ArrayList<URL>(); File file1 = new File("src/test/resources/org/unitils/dbunit/test1/testFile.txt"); URL urlFile1 = new URL("file:///" + file1.getAbsolutePath()); String resourceSearchName = file1.getAbsolutePath().substring(file1.getAbsolutePath().lastIndexOf("\\") + 1); strategy.addMostRecent(filteredResources, urlFile1, resourceSearchName); Assert.assertEquals(1, filteredResources.size()); ReflectionAssert.assertLenientEquals(Arrays.asList(urlFile1), filteredResources); } @Test public void testFilter() throws MalformedURLException { List<URL> filteredResources = new ArrayList<URL>(); File file1 = new File("src/test/resources/org/unitils/dbunit/test1/testFile.txt"); URL urlFile1 = new URL("file:///" + file1.getAbsolutePath()); filteredResources.add(urlFile1); String resourceSearchName = file1.getAbsolutePath().substring(file1.getAbsolutePath().lastIndexOf(pathSeperator) + 1); strategy.filter(filteredResources, resourceSearchName); Assert.assertEquals(1, filteredResources.size()); ReflectionAssert.assertLenientEquals(Arrays.asList(urlFile1), filteredResources); } }