public void Defaults()
        {
            TestRuntime.AssertXcodeVersion(5, 0);

            using (var meta = new CGMutableImageMetadata()) {
                Console.WriteLine(meta);
                NSError err;
                Assert.True(meta.RegisterNamespace(CGImageMetadataTagNamespaces.Exif, CGImageMetadataTagPrefixes.Exif, out err), "RegisterNamespace");
                Assert.Null(err, "NSError");

                // nothing to see at this stage
                using (var data = meta.CreateXMPData()) {
                    Assert.Null(data, "CreateXMPData-1");
                }

                using (var tag = new CGImageMetadataTag(nspace, prefix, name, CGImageMetadataType.Default, true)) {
                    Assert.True(meta.SetTag(null, path, tag), "SetTag");
                }

                // now we're talking
                using (var data = meta.CreateXMPData()) {
                    Assert.NotNull(data, "CreateXMPData-2");
                }

                Assert.True(meta.SetValue(null, path, false), "SetValue");

                Assert.True(meta.SetValueMatchingImageProperty(CGImageProperties.ExifDictionary, CGImageProperties.ExifDateTimeOriginal, (NSDate)DateTime.Now), "SetValueMatchingImageProperty");
            }
        }
        public void Ctor_NSDictionary()
        {
            TestRuntime.AssertXcodeVersion(5, 0);

            using (var value = NSDictionary.FromObjectAndKey(name, prefix))
                using (var tag = new CGImageMetadataTag(nspace, prefix, name, CGImageMetadataType.Default, value)) {
                    Assert.That(tag.Name.ToString(), Is.EqualTo("tagName"), "Name");
                    Assert.That(tag.Namespace.ToString(), Is.EqualTo("http://ns.adobe.com/exif/1.0/"), "Namespace");
                    Assert.That(tag.Prefix.ToString(), Is.EqualTo("exif"), "Prefix");
                    Assert.That(tag.Type, Is.EqualTo(CGImageMetadataType.Structure), "Type");
                    Assert.That(tag.Value, Is.TypeOf <NSMutableDictionary> (), "Value");
                    Assert.Null(tag.GetQualifiers(), "GetQualifiers");
                }
        }
        public void Ctor_NSNumber()
        {
            TestRuntime.AssertXcodeVersion(5, 0);

            using (var value = NSNumber.FromByte(255))
                using (var tag = new CGImageMetadataTag(nspace, prefix, name, CGImageMetadataType.Default, value)) {
                    Assert.That(tag.Name.ToString(), Is.EqualTo("tagName"), "Name");
                    Assert.That(tag.Namespace.ToString(), Is.EqualTo("http://ns.adobe.com/exif/1.0/"), "Namespace");
                    Assert.That(tag.Prefix.ToString(), Is.EqualTo("exif"), "Prefix");
                    Assert.That(tag.Type, Is.EqualTo(CGImageMetadataType.String), "Type");
                    Assert.That(tag.Value.ToString(), Is.EqualTo("255"), "Value");
                    Assert.Null(tag.GetQualifiers(), "GetQualifiers");
                }
        }
        public void Ctor_Bool_True()
        {
            TestRuntime.AssertXcodeVersion(5, 0);

            using (var tag = new CGImageMetadataTag(nspace, prefix, name, CGImageMetadataType.Default, true)) {
                Assert.That(CFGetRetainCount(tag.Handle), Is.EqualTo(1), "RetainCount");

                Assert.That(tag.Name.ToString(), Is.EqualTo("tagName"), "Name");
                Assert.That(tag.Namespace.ToString(), Is.EqualTo("http://ns.adobe.com/exif/1.0/"), "Namespace");
                Assert.That(tag.Prefix.ToString(), Is.EqualTo("exif"), "Prefix");
                Assert.That(tag.Type, Is.EqualTo(CGImageMetadataType.String), "Type");
                Assert.That(tag.Value.ToString(), Is.EqualTo("True"), "Value");
                Assert.Null(tag.GetQualifiers(), "GetQualifiers");
            }
        }
示例#5
0
        public void Ctor_NSArray()
        {
            TestRuntime.AssertXcodeVersion(5, 0);

            using (var value = NSArray.FromNSObjects(nspace, prefix, name))
                using (var tag = new CGImageMetadataTag(nspace, prefix, name, CGImageMetadataType.Default, value)) {
                    Assert.That(tag.Name.ToString(), Is.EqualTo("tagName"), "Name");
                    Assert.That(tag.Namespace.ToString(), Is.EqualTo("http://ns.adobe.com/exif/1.0/"), "Namespace");
                    Assert.That(tag.Prefix.ToString(), Is.EqualTo("exif"), "Prefix");
                    Assert.That(tag.Type, Is.EqualTo(CGImageMetadataType.ArrayOrdered), "Type");
                    // an NSArray before iOS 10, NSMutableArray then
                    Assert.That(tag.Value, Is.InstanceOf <NSArray> (), "Value");
                    Assert.Null(tag.GetQualifiers(), "GetQualifiers");
                }
        }
        public void Defaults()
        {
            TestRuntime.AssertXcodeVersion(5, 0);

            Assert.Throws <ArgumentNullException> (delegate { new CGImageMetadata(null); }, "null");

            using (var mutable = new CGMutableImageMetadata())
                using (var tag = new CGImageMetadataTag(nspace, prefix, name, CGImageMetadataType.Default, true)) {
                    mutable.SetTag(null, path, tag);

                    using (var meta = new CGImageMetadata(mutable.CreateXMPData())) {
                        // not surprising since it's all empty
                        Assert.Null(meta.CopyTagMatchingImageProperty(CGImageProperties.ExifDictionary, CGImageProperties.ExifDateTimeOriginal), "CopyTagMatchingImageProperty");
                    }
                }
        }
        public void Ctor_Bool_False()
        {
            TestRuntime.AssertXcodeVersion(5, 0);

            var rc = name.RetainCount;

            using (var tag = new CGImageMetadataTag(nspace, prefix, name, CGImageMetadataType.Default, false)) {
                var n = tag.Name;
                Assert.That(n.Handle, Is.EqualTo(name.Handle), "same");
                Assert.That(n.ToString(), Is.EqualTo("tagName"), "Name");
                Assert.That(tag.Namespace.ToString(), Is.EqualTo("http://ns.adobe.com/exif/1.0/"), "Namespace");
                Assert.That(tag.Prefix.ToString(), Is.EqualTo("exif"), "Prefix");
                Assert.That(tag.Type, Is.EqualTo(CGImageMetadataType.String), "Type");
                Assert.That(tag.Value.ToString(), Is.EqualTo("False"), "Value");
                Assert.Null(tag.GetQualifiers(), "GetQualifiers");
            }
        }
示例#8
0
        public void Ctor_NSArray()
        {
            if (!TestRuntime.CheckSystemAndSDKVersion(7, 0))
            {
                Assert.Ignore("Requires iOS 7+");
            }

            using (var value = NSArray.FromNSObjects(nspace, prefix, name))
                using (var tag = new CGImageMetadataTag(nspace, prefix, name, CGImageMetadataType.Default, value)) {
                    Assert.That(tag.Name.ToString(), Is.EqualTo("tagName"), "Name");
                    Assert.That(tag.Namespace.ToString(), Is.EqualTo("http://ns.adobe.com/exif/1.0/"), "Namespace");
                    Assert.That(tag.Prefix.ToString(), Is.EqualTo("exif"), "Prefix");
                    Assert.That(tag.Type, Is.EqualTo(CGImageMetadataType.ArrayOrdered), "Type");
                    Assert.That(tag.Value, Is.TypeOf <NSMutableArray> (), "Value");
                    Assert.Null(tag.GetQualifiers(), "GetQualifiers");
                }
        }
示例#9
0
        public void Ctor_Bool_False()
        {
            if (!TestRuntime.CheckSystemAndSDKVersion(7, 0))
            {
                Assert.Ignore("Requires iOS 7+");
            }

            var rc = name.RetainCount;

            using (var tag = new CGImageMetadataTag(nspace, prefix, name, CGImageMetadataType.Default, false)) {
                using (var n = tag.Name) {
                    Assert.That(n.Handle, Is.EqualTo(name.Handle), "same");
                    Assert.That(n.ToString(), Is.EqualTo("tagName"), "Name");
                }
                Assert.That(tag.Namespace.ToString(), Is.EqualTo("http://ns.adobe.com/exif/1.0/"), "Namespace");
                Assert.That(tag.Prefix.ToString(), Is.EqualTo("exif"), "Prefix");
                Assert.That(tag.Type, Is.EqualTo(CGImageMetadataType.String), "Type");
                Assert.That(tag.Value.ToString(), Is.EqualTo("False"), "Value");
                Assert.Null(tag.GetQualifiers(), "GetQualifiers");
            }
        }