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"); } }
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"); } }
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"); } }
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"); } }