public void MultipleDependencyChain(bool useProjectReference) { // App can depend on Lib that depends on binding lib with native reference and everything gets packaged in correctly MMPTests.RunMMPTest(tmpDir => { TI.UnifiedTestConfig binding = new TI.UnifiedTestConfig(tmpDir) { ProjectName = "MobileBinding.csproj" }; binding.ItemGroup += NativeReferenceTests.CreateSingleNativeRef(NativeReferenceTests.SimpleDylibPath, "Dynamic"); binding.APIDefinitionConfig += @"[BaseType (typeof (NSObject))] interface SimpleClass { [Export (""doIt"")] int DoIt (); }"; BindingProjectTests.SetNoEmbedding(binding); TI.GenerateBindingLibraryProject(binding); TI.BuildProject(Path.Combine(tmpDir, "MobileBinding.csproj")); TI.UnifiedTestConfig library = new TI.UnifiedTestConfig(tmpDir) { ProjectName = "UnifiedLibrary" }; library.TestCode = "public class MyClass { public static void Go () { var c = new ExampleBinding.SimpleClass (); c.DoIt (); } }"; if (useProjectReference) { library.References = $@"<ProjectReference Include=""MobileBinding.csproj"" />"; } else { library.References = $@"<Reference Include=""MobileBinding""><HintPath>{Path.Combine (tmpDir, "bin/Debug", "MobileBinding.dll")}</HintPath></Reference>"; } TI.GenerateUnifiedLibraryProject(library); TI.BuildProject(Path.Combine(tmpDir, "UnifiedLibrary.csproj")); TI.UnifiedTestConfig project = new TI.UnifiedTestConfig(tmpDir) { ProjectName = "UnifiedExample.csproj" }; project.TestCode = "MyClass.Go ();"; if (useProjectReference) { project.References = $@"<ProjectReference Include=""UnifiedLibrary.csproj"" />"; } else { project.References = $@"<Reference Include=""UnifiedLibrary""><HintPath>{Path.Combine (tmpDir, "bin/Debug", "UnifiedLibrary.dll")}</HintPath></Reference>"; } TI.GenerateUnifiedExecutableProject(project); TI.BuildProject(Path.Combine(tmpDir, "UnifiedExample.csproj")); }); }
public void BuildFSharpUnifiedXM45_Library_SmokeTest() { RunMSBuildTest(tmpDir => { string projectPath = TI.GenerateUnifiedLibraryProject(new TI.UnifiedTestConfig(tmpDir) { FSharp = true, ProjectName = "FSharpXM45Library" }); TI.BuildProject(projectPath); }); }
public void BuildUnifiedMobile_Library_SmokeTest() { RunMSBuildTest(tmpDir => { string projectPath = TI.GenerateUnifiedLibraryProject(new TI.UnifiedTestConfig(tmpDir) { ProjectName = "UnifiedLibrary" }); TI.BuildProject(projectPath); }); }
public void BuildUnifiedXM45_Library_SmokeTest() { RunMSBuildTest(tmpDir => { string projectPath = TI.GenerateUnifiedLibraryProject(new TI.UnifiedTestConfig(tmpDir) { ProjectName = "XM45Library" }); TI.BuildProject(projectPath, isUnified: true); }); }
public void FilePathCollisionShouldNotFailBuild() { RunMMPTest(tmpDir => { var libraryDirectory = tmpDir + "/UnifiedExample/"; var libraryName = "UnifiedLibrary"; Directory.CreateDirectory(libraryDirectory); TI.UnifiedTestConfig libConfig = new TI.UnifiedTestConfig(libraryDirectory) { ProjectName = libraryName }; string csprojTarget = TI.GenerateUnifiedLibraryProject(libConfig); TI.BuildProject(csprojTarget); string referenceCode = string.Format(@"<Reference Include=""UnifiedLibrary""><HintPath>{0}</HintPath></Reference>", Path.Combine(libraryDirectory, "bin/Debug/", $"{libraryName}.dll")); TI.UnifiedTestConfig test = new TI.UnifiedTestConfig(tmpDir) { References = referenceCode }; TI.TestUnifiedExecutable(test); }); }
public void Unified32BitWithXMRequiringLibrary_ShouldReferenceCorrectXM_AndNotCrash() { RunMMPTest(tmpDir => { TI.UnifiedTestConfig libConfig = new TI.UnifiedTestConfig(tmpDir) { ProjectName = "UnifiedLibrary", TestCode = "namespace Library { public static class Foo { public static void Bar () { var v = new Foundation.NSObject (); } } }" }; string csprojTarget = TI.GenerateUnifiedLibraryProject(libConfig); TI.BuildProject(csprojTarget, isUnified: true); string referenceCode = string.Format(@"<Reference Include=""UnifiedLibrary""><HintPath>{0}</HintPath></Reference>", Path.Combine(tmpDir, "bin/Debug/UnifiedLibrary.dll")); TI.UnifiedTestConfig test = new TI.UnifiedTestConfig(tmpDir) { CSProjConfig = @"<PlatformTarget>x86</PlatformTarget><XamMacArch>i386</XamMacArch>", ReferencesBeforePlatform = referenceCode, TestCode = "Library.Foo.Bar ();" }; TI.TestUnifiedExecutable(test); }); }