package org.eclipse.recommenders.internal.snipmatch; import static org.hamcrest.Matchers.*; import static org.junit.Assert.assertThat; import java.util.Arrays; import java.util.LinkedList; import java.util.List; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; import org.junit.runners.Parameterized.Parameters; import com.google.common.collect.Lists; @RunWith(Parameterized.class) public class FilenamesTest { private final String filename; private final List<String> expected; public FilenamesTest(String description, String filename, List<String> expected) { this.filename = filename; this.expected = expected; } @Parameters(name = "{index}: {0}") public static Iterable<Object[]> scenarios() { LinkedList<Object[]> scenarios = Lists.newLinkedList(); scenarios.add(scenario("null filename", null)); scenarios.add(scenario("No extension", "name", "name")); scenarios.add(scenario("One extension", "name.extension", "name.extension", ".extension")); scenarios.add(scenario("Two extensions", "name.first.second", "name.first.second", ".first.second", ".second")); scenarios.add(scenario("Extension only", ".gitignore", ".gitignore")); scenarios.add(scenario("Two dots", "name..extension", "name..extension", "..extension", ".extension")); scenarios.add(scenario("Two dots at beginning", "..extension", "..extension", ".extension")); return scenarios; } private static Object[] scenario(String description, String filename, String... expected) { return new Object[] { description, filename, Arrays.asList(expected) }; } @Test public void test() { List<String> actual = Filenames.getFilenameRestrictions(filename); assertThat(actual, is(equalTo(expected))); } }