public void RemoveParentDoesNotRemoveAllParents() { var config = new Config.ConfigFile { Id = nameof(RemoveParentDoesNotRemoveAllParents), Assembly = nameof(RemoveParentDoesNotRemoveAllParents), Namespace = nameof(RemoveParentDoesNotRemoveAllParents), Includes = { new Config.IncludeRule { Attach = true, File = "cppEnum.h", Namespace = nameof(RemoveParentDoesNotRemoveAllParents) } }, Mappings = { new Config.RemoveRule { Method = @"#.*ToRemove" } } }; var cppModel = new CppModule(); var cppInclude = new CppInclude { Name = "cppEnum" }; var cppIface = new CppInterface { Name = "TestInterface" }; cppInclude.Add(cppIface); var cppMethod = new CppMethod { Name = "Method" }; cppMethod.Add(new CppParameter { Name = "ParamToRemove" }); cppModel.Add(cppInclude); var(solution, _) = MapModel(cppModel, config); var members = solution.EnumerateDescendants(); Assert.NotEmpty(members.OfType <CsInterface>()); Assert.Empty(members.OfType <CsParameter>()); }
public void DefineWithNativeImplementationDefinesNativeImplementationType() { var config = new ConfigFile { Id = nameof(Simple), Namespace = nameof(Simple), Includes = { new IncludeRule { File = "interface.h", Attach = true, Namespace = nameof(Simple) } }, Extension = { new DefineExtensionRule { Interface = "Imported.Param", NativeImplementation = "Imported.ParamNative" } }, Bindings = { new BindRule("int", "System.Int32"), new BindRule("Param", "Imported.Param") } }; var iface = new CppInterface { Name = "Interface", TotalMethodCount = 1 }; var method = new CppMethod { Name = "method", ReturnValue = new CppReturnValue { TypeName = "int" } }; method.Add(new CppParameter { Name = "param", TypeName = "Param", Pointer = "*" }); iface.Add(method); var include = new CppInclude { Name = "interface" }; include.Add(iface); var module = new CppModule(); module.Add(include); var(solution, _) = MapModel(module, config); Assert.Single(solution.EnumerateDescendants().OfType <CsParameter>()); var param = solution.EnumerateDescendants().OfType <CsParameter>().First(); Assert.IsType <CsInterface>(param.PublicType); Assert.NotNull(((CsInterface)param.PublicType).NativeImplementation); Assert.False(Logger.HasErrors); }