Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
            });
        }