예제 #1
0
        public void PackLibraryResources_LibraryProject()
        {
            RunTargetOnInstance(LibraryProjectInstance, TargetName.PackLibraryResources);
            var embeddedResources = LibraryProjectInstance.GetItems("EmbeddedResource").ToArray();

            Assert.AreEqual(13, embeddedResources.Length, "#1");
        }
예제 #2
0
        public void UnpackLibraryResources_LibraryProject()
        {
            // We should not unpack any EmbeddedResources into BundleResources
            RunTargetOnInstance(LibraryProjectInstance, TargetName.Build);
            var bundleResources = LibraryProjectInstance.GetItems("_BundleResourceWithLogicalName").ToArray();

            Assert.AreEqual(11, bundleResources.Length, "#1");
        }
예제 #3
0
        public void GetReferencedAssemblies_Library()
        {
            RunTargetOnInstance(LibraryProjectInstance, TargetName.ResolveReferences);
            var references = LibraryProjectInstance.GetItems("ReferencePath").ToArray();

            Assert.AreEqual(5, references.Length, "#1");
            Assert.IsTrue(references.Any(t => t.EvaluatedInclude.Contains("System")), "#2a");
            Assert.IsTrue(references.Any(t => t.EvaluatedInclude.Contains("System.Xml")), "#2b");
            Assert.IsTrue(references.Any(t => t.EvaluatedInclude.Contains("System.Core")), "#2c");
            Assert.IsTrue(references.Any(t => t.EvaluatedInclude.Contains("mscorlib")), "#2d");
            Assert.IsTrue(references.Any(t => t.EvaluatedInclude.Contains("Xamarin.iOS")), "#2e");
        }
예제 #4
0
        public void GetReferencedAssemblies_Library()
        {
            RunTargetOnInstance(LibraryProjectInstance, TargetName.ResolveReferences);
            var references          = LibraryProjectInstance.GetItems("ReferencePath").ToArray();
            var expected_references = new string[] {
                "System.dll",
                "System.Xml.dll",
                "System.Core.dll",
                "mscorlib.dll",
                "Xamarin.iOS.dll",
                "System.Drawing.Common.dll",
            };

            Array.Sort(expected_references);

            var actual_references = references.Select((v) => Path.GetFileName(v.EvaluatedInclude)).OrderBy((v) => v);

            CollectionAssert.AreEquivalent(expected_references, actual_references, "References");
        }
예제 #5
0
        void BuildLibraryCore(string[] expectedResources)
        {
            var library = Path.Combine(LibraryProjectBinPath, "MyLibrary.dll");

            RunTargetOnInstance(LibraryProjectInstance, TargetName.Build);

            Assert.IsTrue(string.IsNullOrEmpty(LibraryProjectInstance.GetPropertyValue("AppBundleDir")), "#1");
            var entries = Directory.GetFileSystemEntries(LibraryProjectBinPath);

            Assert.AreEqual(2, entries.Length, "#1");
            Assert.IsTrue(File.Exists(library), "#2");
            Assert.IsTrue(File.Exists(Path.ChangeExtension(library, ".pdb")), "#3");

            var assemblyDef     = AssemblyDefinition.ReadAssembly(library);
            var actualResources = assemblyDef.MainModule.Resources.Select(n => n.Name).ToList();

            foreach (var resource in expectedResources)
            {
                Assert.IsTrue(actualResources.Contains(resource), "#1. " + resource);
            }
            Assert.AreEqual(expectedResources.Length, assemblyDef.MainModule.Resources.OfType <EmbeddedResource> ().Count(), "#2");
        }
예제 #6
0
 public void DetectAppManifest_LibraryProject()
 {
     RunTargetOnInstance(LibraryProjectInstance, TargetName.DetectAppManifest);
     Assert.That(LibraryProjectInstance.GetPropertyValue("_AppManifest"), Is.Not.Null.Or.Empty, "#1");
 }
예제 #7
0
 public void DetectAppManifest_LibraryProject()
 {
     RunTargetOnInstance(LibraryProjectInstance, TargetName.DetectAppManifest);
     Assert.IsNullOrEmpty(LibraryProjectInstance.GetPropertyValue("_AppManifest"), "#1");
 }
예제 #8
0
        public void BuildLibrary_NoInterfaceDefinitions()
        {
            LibraryProjectInstance.RemoveItems("InterfaceDefinition");

            BuildLibraryCore(ExpectedLibraryEmbeddedResources.Where(s => !s.Contains("storyboardc")).ToArray());
        }