Skip to content

Commit

Permalink
add subdir test and comments
Browse files Browse the repository at this point in the history
  • Loading branch information
zeusongit committed Feb 1, 2024
1 parent 157fff7 commit 70257f7
Show file tree
Hide file tree
Showing 4 changed files with 54 additions and 15 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -138,7 +138,7 @@ internal void AddChildren(PackageItemRootViewModel item)
/// add "dir 3" to "dir2" and then "dir2" to "dir1".
/// </summary>
/// <param name="elem">Child item to be added.</param>
internal void AddChild(PackageItemRootViewModel elem)
internal void AddChildRecursively(PackageItemRootViewModel elem)
{
if (elem.DependencyType.Equals(DependencyType.CustomNode)) return;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1062,7 +1062,7 @@ private List<PackageItemRootViewModel> BindParentToChild(Dictionary<string, Pack
if (IsSubPathOfDeep(parent.Value, child.Value))
{
if (child.Value.isChild) continue; // if this was picked up already, don't add it again
parent.Value.AddChild(child.Value);
parent.Value.AddChildRecursively(child.Value);
child.Value.isChild = true;
}
}
Expand Down Expand Up @@ -1092,7 +1092,7 @@ private List<PackageItemRootViewModel> GetRootItems(Dictionary<string, PackageIt
var itemDir = new DirectoryInfo(item.DirectoryName);
if (!itemDir.Parent.FullName.Equals(packageSourceDir))
{
root.AddChild(item);
root.AddChildRecursively(item);
}
else
{
Expand All @@ -1108,7 +1108,7 @@ private List<PackageItemRootViewModel> GetRootItems(Dictionary<string, PackageIt
/// <param name="path1"></param>
/// <param name="path2"></param>
/// <returns></returns>
private bool IsSubPathOfDeep(PackageItemRootViewModel path1, PackageItemRootViewModel path2)
internal bool IsSubPathOfDeep(PackageItemRootViewModel path1, PackageItemRootViewModel path2)
{
var di1 = new DirectoryInfo(path1.DirectoryName);
var di2 = new DirectoryInfo(path2.DirectoryName);
Expand Down Expand Up @@ -2707,7 +2707,7 @@ internal PackageItemRootViewModel GetPreBuildRootItemViewModel(string publishPat
var docItemPreview = new PackageItemRootViewModel(docDir) { isChild = true };

var pkg = new PackageItemRootViewModel(new FileInfo(Path.Combine(rootDir, "pkg.json")));
rootItemPreview.AddChild(pkg);
rootItemPreview.AddChildRecursively(pkg);

foreach (var file in files)
{
Expand All @@ -2717,12 +2717,12 @@ internal PackageItemRootViewModel GetPreBuildRootItemViewModel(string publishPat
if (Path.GetDirectoryName(file).EndsWith(PackageDirectoryBuilder.DocumentationDirectoryName))
{
var doc = new PackageItemRootViewModel(new FileInfo(Path.Combine(docDir, fileName)));
docItemPreview.AddChild(doc);
docItemPreview.AddChildRecursively(doc);
}
else if (file.EndsWith(".dyf"))
{
var dyfPreview = new PackageItemRootViewModel(fileName, Path.Combine(dyfDir, fileName));
dyfItemPreview.AddChild(dyfPreview);
dyfItemPreview.AddChildRecursively(dyfPreview);
}
else if (file.EndsWith(".dll") || PackageDirectoryBuilder.IsXmlDocFile(file, files) || PackageDirectoryBuilder.IsDynamoCustomizationFile(file, files))
{
Expand All @@ -2737,27 +2737,27 @@ internal PackageItemRootViewModel GetPreBuildRootItemViewModel(string publishPat
else
{
var dll = new PackageItemRootViewModel(new FileInfo(Path.Combine(binDir, fileName)));
binItemPreview.AddChild(dll);
binItemPreview.AddChildRecursively(dll);
}
}
else
{
var extra = new PackageItemRootViewModel(new FileInfo(Path.Combine(extraDir, fileName)));
extraItemPreview.AddChild(extra);
extraItemPreview.AddChildRecursively(extra);
}
}

foreach(var docFile in MarkdownFiles)
{
var fileName = Path.GetFileName(docFile);
var doc = new PackageItemRootViewModel(new FileInfo(Path.Combine(docDir, fileName)));
docItemPreview.AddChild(doc);
docItemPreview.AddChildRecursively(doc);
}

rootItemPreview.AddChild(dyfItemPreview);
rootItemPreview.AddChild(binItemPreview);
rootItemPreview.AddChild(extraItemPreview);
rootItemPreview.AddChild(docItemPreview);
rootItemPreview.AddChildRecursively(dyfItemPreview);
rootItemPreview.AddChildRecursively(binItemPreview);
rootItemPreview.AddChildRecursively(extraItemPreview);
rootItemPreview.AddChildRecursively(docItemPreview);

return rootItemPreview;
}
Expand Down
22 changes: 22 additions & 0 deletions test/DynamoCoreWpfTests/PublishPackageViewModelTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -236,5 +236,27 @@ public void PublishingCustomNodeAsNewVersionWorks_SetsPackageInfoCorrectly()
{
throw new NotImplementedException();
}

[Test]
public void AssertIsSubPathOfDeep_IsSuccessful()
{
var newPkgVm = new PublishPackageViewModel(this.ViewModel);

//arrange
Dictionary<string, bool> testDirs = new Dictionary<string, bool> {
{ @"C:\Package\bin\Dir1|C:\Package\bin\Dir1\Dir2", true },
{ @"C:\Package\bin\Dir1|C:\Package\bin\Dir1", false },
{ @"C:\Package\bin\Dir1\Dir2\Dir3\Dir4\Dir5\Dir6\Dir7\Dir8\Dir8\Dir9\Dir10|C:\Package\bin\Dir1", false },
{ @"C:\Package\bin\Dir1|C:\Package\bin\Dir1\Dir2\Dir3\Dir4\Dir5\Dir6\Dir7\Dir8\Dir8\Dir9\Dir10", true },
{ @"bin\Dir1|bin\Dir1\Dir2", true },
};

//assert
foreach (var testDir in testDirs)
{
var paths = testDir.Key.Split('|');
Assert.AreEqual(testDir.Value, newPkgVm.IsSubPathOfDeep(new PackageItemRootViewModel(paths[0]), new PackageItemRootViewModel(paths[1])));
}
}
}
}
19 changes: 18 additions & 1 deletion test/pkgs/NestedPackage/pkg.json
Original file line number Diff line number Diff line change
@@ -1 +1,18 @@
{"license":"","file_hash":null,"name":"NestedPackage","version":"1.0.0","description":"original package","group":"","keywords":null,"dependencies":[],"contents":"","engine_version":"2.1.0.7840","engine":"dynamo","engine_metadata":"","site_url":"","repository_url":"","contains_binaries":true,"node_libraries":["Package, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"]}
{
"license": "",
"file_hash": null,
"name": "NestedPackage",
"version": "1.0.0",
"description": "original package",
"group": "",
"keywords": null,
"dependencies": [],
"contents": "",
"engine_version": "2.1.0.7840",
"engine": "dynamo",
"engine_metadata": "",
"site_url": "",
"repository_url": "",
"contains_binaries": true,
"node_libraries": []
}

0 comments on commit 70257f7

Please sign in to comment.