public void execute_a_file() { var executor = Substitute.For <ISqlExecutor>(); var batchExecutor = new SqlFileExecutor(new SqlParser(), executor); var path = CreateFile("Foo.txt", "Foo"); batchExecutor.ExecuteFile(path); executor.Received().Execute(Arg.Is <IEnumerable <string> >(e => e.SequenceEqual(new[] { "Foo" }))); DeleteFile(path); }
public void execute_a_directory_filtering_files() { var executor = Substitute.For <ISqlExecutor>(); var batchExecutor = new SqlFileExecutor(new SqlParser(), executor); CreateFile("Foo\\Bar.txt", "Bar"); CreateFile("Foo\\Baz.txt", "Baz"); CreateFile("Foo\\Qux\\Quux.txt", "Quux"); var directory = Path.Combine(_directory, "Foo"); Predicate <string> predicate = file => Path.GetFileName(file) != "Quux.txt"; batchExecutor.ExecuteFiles(directory, predicate); executor.Received(2).Execute(Arg.Any <IEnumerable <string> >()); var receivedCalls = executor.ReceivedCalls(); receivedCalls.Any(call => ((IEnumerable <string>)call.GetArguments()[0]).SequenceEqual(new[] { "Bar" })).Should().BeTrue(); receivedCalls.Any(call => ((IEnumerable <string>)call.GetArguments()[0]).SequenceEqual(new[] { "Baz" })).Should().BeTrue(); DeleteDirectory(directory); }