package org.smoothbuild.builtin.file.match.testing;
import static org.hamcrest.Matchers.contains;
import static org.smoothbuild.builtin.file.match.testing.MatchingNamesGenerator.generateNames;
import static org.testory.Testory.thenReturned;
import static org.testory.Testory.when;
import java.util.ArrayList;
import java.util.List;
import java.util.function.Consumer;
import org.junit.Test;
public class MatchingNamesGeneratorTest {
@Test
public void test() {
List<String> expected = new ArrayList<>();
expected.add("xz");
expected.add("xaz");
expected.add("xbz");
expected.add("xcz");
expected.add("xaaz");
expected.add("xabz");
expected.add("xacz");
expected.add("xbaz");
expected.add("xbbz");
expected.add("xbcz");
expected.add("xcaz");
expected.add("xcbz");
expected.add("xccz");
String[] expectedNames = expected.toArray(new String[expected.size()]);
when(() -> {
CollectingConsumer collectingConsumer = new CollectingConsumer();
generateNames("x*z", collectingConsumer);
return collectingConsumer.generatedNames;
});
thenReturned(contains(expectedNames));
}
private static class CollectingConsumer implements Consumer<String> {
private final List<String> generatedNames = new ArrayList<>();
public void accept(String name) {
generatedNames.add(name);
}
}
}