Example #1
0
        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"));
            });
        }
Example #2
0
 public void BuildFSharpUnifiedXM45_Library_SmokeTest()
 {
     RunMSBuildTest(tmpDir => {
         string projectPath = TI.GenerateUnifiedLibraryProject(new TI.UnifiedTestConfig(tmpDir)
         {
             FSharp = true, ProjectName = "FSharpXM45Library"
         });
         TI.BuildProject(projectPath);
     });
 }
Example #3
0
 public void BuildUnifiedMobile_Library_SmokeTest()
 {
     RunMSBuildTest(tmpDir => {
         string projectPath = TI.GenerateUnifiedLibraryProject(new TI.UnifiedTestConfig(tmpDir)
         {
             ProjectName = "UnifiedLibrary"
         });
         TI.BuildProject(projectPath);
     });
 }
Example #4
0
 public void BuildUnifiedXM45_Library_SmokeTest()
 {
     RunMSBuildTest(tmpDir => {
         string projectPath = TI.GenerateUnifiedLibraryProject(new TI.UnifiedTestConfig(tmpDir)
         {
             ProjectName = "XM45Library"
         });
         TI.BuildProject(projectPath, isUnified: true);
     });
 }
Example #5
0
        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);
            });
        }
Example #6
0
        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);
            });
        }