public void GetUnexecutedEvolutions() { var executedEvolutions = new IEvolution[] { new Data.Entity.Evolution() { Name = "Evolution1", FileName = "Evolution1.evo.sql" }, new Data.Entity.Evolution() { Name = "Evolution2", FileName = "Evolution2.evo.sql" }, new Data.Entity.Evolution() { Name = "Evolution3", FileName = "Evolution3.evo.sql" } }; var unexecutedEvolutionFiles = new string[] { "Evolution4.evo.sql", "Evolution5.evo.sql", "Evolution6.evo.sql" }; var evolutionFileNames = new List <string>() { "Evolution1.evo.sql", "Evolution2.evo.sql", "Evolution3.evo.sql", }; evolutionFileNames.AddRange(unexecutedEvolutionFiles); var mockBuilder = new FileContextBuilder().AddGetEvolutionFileNamesBehavior(evolutionFileNames.ToArray()); var repo = new FileRepo(mockBuilder.Context); var unexecutedEvolutions = repo.GetUnexecutedEvolutionFiles(executedEvolutions.Select(e => e.FileName).ToArray()); Assert.NotEmpty(unexecutedEvolutions); Assert.Equal(unexecutedEvolutionFiles.Length, unexecutedEvolutions.Count()); Assert.Equal(unexecutedEvolutionFiles, unexecutedEvolutions.ToArray()); }