public void ComparisonTest(DnxSdk sdk) { var file1a = new JObject { ["info"] = "foo" }; var file1b = new JObject { ["info"] = "bar1" }; var project1 = new Dir { ["file1"] = file1a, ["file2"] = file1b }; var file2a = new JObject { ["info"] = "foo" }; var file2b = new JObject { ["info"] = "bar2" }; var project2 = new Dir { ["file1"] = file2a, ["file2"] = file2b }; var project3 = new Dir { ["file1"] = file2a, ["file2"] = new DirItem(Dir.EmptyFile, skipComparison: true) }; var project4 = new Dir { ["subdir1"] = project1, ["subdir2"] = project1 }; var project5 = new Dir { ["subdir1"] = new DirItem(project2, skipComparison: true), ["subdir2"] = project2 }; DirAssert.Equal(project1, project2, compareContents: false); DirAssert.Equal(project1, project3, compareContents: false); DirAssert.Equal(project1, project3); DirAssert.Equal(project2, project3); //DirAssert.Equal(project4, project5); // this should fail, but only subdir2 should be different TestUtils.CleanUpTestDir<DnuPublishTests>(sdk); }
public void DnuPack_ClientProfile(DnxSdk sdk) { const string ProjectName = "ClientProfileProject"; var projectStructure = new Dir { [ProjectName] = new Dir { ["project.json"] = new JObject { ["frameworks"] = new JObject { ["net40-client"] = new JObject(), ["net35-client"] = new JObject() } } }, ["Output"] = new Dir() }; var baseDir = TestUtils.GetTestFolder<DnuPackTests>(sdk); var projectDir = Path.Combine(baseDir, ProjectName); var outputDir = Path.Combine(baseDir, "Output"); projectStructure.Save(baseDir); sdk.Dnu.Restore(projectDir).EnsureSuccess(); var result = sdk.Dnu.Pack(projectDir, outputDir); Assert.Equal(0, result.ExitCode); TestUtils.CleanUpTestDir<DnuPackTests>(sdk); }
public void Load(string path) { var directory = new DirectoryInfo(path); foreach (var subDirectoryInfo in directory.EnumerateDirectories()) { Dir subDirectory = new Dir(this); this[subDirectoryInfo.Name] = subDirectory; subDirectory.Load(Path.Combine(path, subDirectoryInfo.Name)); } foreach (var file in directory.EnumerateFiles()) { this[file.Name] = _readFile(file); } }
public Dir(Dir parent) { _readFile = parent._readFile; _fileComparator = parent._fileComparator; }
public DirDiff Diff(Dir other, bool compareContents = true) { var nodes1 = Flatten(compareContents); var nodes2 = other.Flatten(compareContents); return new DirDiff { ExtraEntries = nodes1.Keys.Except(nodes2.Keys), MissingEntries = nodes2.Keys.Except(nodes1.Keys), DifferentEntries = compareContents ? nodes1.Keys.Intersect(nodes2.Keys).Where( entry => _fileComparator(nodes1[entry], nodes2[entry])) : Enumerable.Empty<string>() }; }