public void ReplaceRootNode() { string path = Assembly.GetExecutingAssembly().Location; path = Path.GetDirectoryName(path); var root = new RootFolderDefinition(Path.Combine(path, "CppTestProject")); var header = new HeaderDefinition("header1.h"); root.AddChild(header); var @class = new ClassDefinition("CppClass"); header.AddNode(@class); var replacement = new RootFolderDefinition(Path.Combine(path, "CppTestProject2")); StructureNodeReplacer.Replace(root, replacement); Assert.IsNull(root.Parent); Assert.AreEqual(0, root.Children.Count); Assert.IsNull(replacement.Parent); Assert.AreEqual(1, replacement.Children.Count); Assert.AreEqual(replacement, header.Parent); }
public void TransformAsync() { WorkAsync((s, e) => { SetStatus(WrapperStatus.TransformingCpp); try { var cloner = new StructureCloner(); cloner.Clone(GlobalNamespaceCpp); GlobalNamespaceCSharp = cloner.RootNamespaceClone; var csharpRootFolderPath = RootFolder.FullPath + "/CS-Wrapper"; RootFolderCSharp = new RootFolderDefinition(csharpRootFolderPath); StructureNodeReplacer.Replace(cloner.RootFolderClone, RootFolderCSharp); new DotNetTransformer().Transform(GlobalNamespaceCSharp, RootFolderCSharp); new BulletTransformer().Transform(GlobalNamespaceCSharp, RootFolderCSharp); } catch (Exception ex) { //WrapperEvent.Invoke(this, new WrapperProjectEventArgs(WrapperProjectEvent.LogMessage, ex.ToString())); } SetStatus(WrapperStatus.TransformingCppDone); }); }