public void ExistingSourcesMergedWithDiscoveredOnes()
{
var fs = CreateFsWithSources();
var suite = new Suite(fs);
var fsSet = suite.GetModule("Module1").GetProject("Project11").GetSourceSet("fs");
var vbSet = suite.GetModule("Module1").GetProject("Project11").GetSourceSet("vb");
fsSet.Add(new SuiteRelativePath(Path.Combine("src", "Module1", "Project11", "fs", "b.fs")));
vbSet.Add(new SuiteRelativePath(Path.Combine("src", "Module1", "Project11", "vb", "x.vb")));
var discovery = new ModuleProjectDiscovery(fs);
discovery.ExtendWithDiscoveries(suite);
var project = suite.GetModule("Module1").GetProject("Project11");
project.SourceSets.Should().HaveCount(3);
project.SourceSets.Should().Contain(set => set.Type == "cs");
project.SourceSets.Should().Contain(set => set.Type == "fs");
project.SourceSets.Should().Contain(set => set.Type == "vb");
var csSet = project.GetSourceSet("cs");
fsSet = project.GetSourceSet("fs");
vbSet = project.GetSourceSet("vb");
csSet.Files.Should().HaveCount(3);
csSet.Files.Should().Contain(new SuiteRelativePath(Path.Combine("src", "Module1", "Project11", "cs", "source1.cs")));
csSet.Files.Should().Contain(new SuiteRelativePath(Path.Combine("src", "Module1", "Project11", "cs", "source2.cs")));
csSet.Files.Should().Contain(new SuiteRelativePath(Path.Combine("src", "Module1", "Project11", "cs", "subdir", "source3.cs")));
fsSet.Files.Should().HaveCount(2);
fsSet.Files.Should().Contain(new SuiteRelativePath(Path.Combine("src", "Module1", "Project11", "fs", "a.fs")));
fsSet.Files.Should().Contain(new SuiteRelativePath(Path.Combine("src", "Module1", "Project11", "fs", "b.fs")));
vbSet.Files.Should().HaveCount(1);
vbSet.Files.Should().HaveElementAt(0, new SuiteRelativePath(Path.Combine("src", "Module1", "Project11", "vb", "x.vb")));
}