/** * Tests deletion of properties, array items, struct fields and qualifer. * @param meta a predefined <code>XmpMeta</code> object. */ private static void CoverDeleteProperties(IXmpMeta meta) { writeMajorLabel("Test deleteProperty"); meta.DeleteProperty (TestData.NS1, "Prop"); meta.DeleteArrayItem (TestData.NS1, "Bag", 2); meta.DeleteStructField (TestData.NS1, "Struct", TestData.NS2, "Field1"); printXmpMeta (meta, "Delete Prop, Bag[2], and Struct1/Field1"); meta.DeleteQualifier (TestData.NS1, "QualProp1", TestData.NS2, "Qual1"); meta.DeleteQualifier (TestData.NS1, "QualProp2", XmpConstants.NsXml, "lang"); meta.DeleteQualifier (TestData.NS1, "QualProp3", TestData.NS2, "Qual"); meta.DeleteQualifier (TestData.NS1, "QualProp4", XmpConstants.NsXml, "lang"); printXmpMeta(meta, "Delete QualProp1/?ns2:Qual1, QualProp2/?xml:lang, " + "QualProp3:/ns2:Qual, and QualProp4/?xml:lang"); meta.DeleteProperty (TestData.NS1, "Bag"); meta.DeleteProperty (TestData.NS1, "Struct"); printXmpMeta (meta, "Delete all of Bag and Struct"); }
/** * Test getProperty, deleteProperty and related methods. * @param meta a predefined <code>XmpMeta</code> object. * @throws XmpException Forwards exceptions */ private static void CoverGetPropertyMethods(IXmpMeta meta) { writeMajorLabel ("Test getProperty, deleteProperty and related methods"); meta.DeleteProperty (TestData.NS1, "QualProp1"); // ! Start with fresh qualifiers. meta.DeleteProperty (TestData.NS1, "ns1:QualProp2"); meta.DeleteProperty (TestData.NS1, "ns1:QualProp3"); meta.DeleteProperty (TestData.NS1, "QualProp4"); writeMinorLabel("Set properties with qualifier"); meta.SetProperty (TestData.NS1, "QualProp1", "Prop value"); meta.SetQualifier (TestData.NS1, "QualProp1", TestData.NS2, "Qual1", "Qual1 value"); meta.SetProperty (TestData.NS1, "QualProp2", "Prop value"); meta.SetQualifier (TestData.NS1, "QualProp2", XmpConstants.NsXml, "lang", "en-us"); meta.SetProperty (TestData.NS1, "QualProp3", "Prop value"); meta.SetQualifier (TestData.NS1, "QualProp3", XmpConstants.NsXml, "lang", "en-us"); meta.SetQualifier (TestData.NS1, "QualProp3", TestData.NS2, "Qual", "Qual value"); meta.SetProperty (TestData.NS1, "QualProp4", "Prop value"); meta.SetQualifier (TestData.NS1, "QualProp4", TestData.NS2, "Qual", "Qual value"); meta.SetQualifier (TestData.NS1, "QualProp4", XmpConstants.NsXml, "lang", "en-us"); printXmpMeta (meta, "XMP object"); writeMinorLabel("Get simple properties"); var property = meta.GetProperty(TestData.NS1, "Prop"); log.WriteLine("getProperty ns1:Prop = " + property.Value + " (" + property.Options.GetOptionsString() + ")"); property = meta.GetProperty(TestData.NS1, "ns1:XMLProp"); log.WriteLine("getProperty ns1:XMLProp = " + property.Value + " (" + property.Options.GetOptionsString() + ")"); property = meta.GetProperty(TestData.NS1, "ns1:URIProp"); log.WriteLine("getProperty ns1:URIProp = " + property.Value + " (" + property.Options.GetOptionsString() + ")"); property = meta.GetArrayItem(TestData.NS1, "Bag", 2); log.WriteLine("getArrayItem ns1:Bag[2] = " + property.Value + " (" + property.Options.GetOptionsString() + ")"); try { meta.GetArrayItem(null, "ns1:Bag", 1); } catch (XmpException e) { log.WriteLine("getArrayItem with no schema URI - threw XmpException #" + e.GetErrorCode() +" : " + e.Message + ")"); } writeMinorLabel("Get array items and struct fields"); property = meta.GetArrayItem(TestData.NS1, "ns1:Seq", 1); log.WriteLine("getArrayItem ns1:Seq[1] = " + property.Value + " (" + property.Options.GetOptionsString() + ")"); property = meta.GetArrayItem(TestData.NS1, "ns1:Alt", 1); log.WriteLine("getArrayItem ns1:Alt[1] = " + property.Value + " (" + property.Options.GetOptionsString() + ")"); log.WriteLine(); property = meta.GetStructField(TestData.NS1, "Struct", TestData.NS2, "Field1"); log.WriteLine("getStructField ns1:Struct/ns2:Field1 = " + property.Value + " (" + property.Options.GetOptionsString() + ")"); property = meta.GetStructField(TestData.NS1, "ns1:Struct", TestData.NS2, "Field2"); log.WriteLine("getStructField ns1:Struct/ns2:Field2 = " + property.Value + " (" + property.Options.GetOptionsString() + ")"); property = meta.GetStructField(TestData.NS1, "ns1:Struct", TestData.NS2, "ns2:Field3"); log.WriteLine("getStructField ns1:Struct/ns2:Field3 = " + property.Value + " (" + property.Options.GetOptionsString() + ")"); property = meta.GetStructField(TestData.NS1, "ns1:Struct", TestData.NS2, "ns2:Field3"); log.WriteLine("getStructField ns1:Struct/ns2:Field3 = " + property.Value + " (" + property.Options.GetOptionsString() + ")"); property = meta.GetStructField(TestData.NS1, "ns1:Struct", TestData.NS2, "ns2:Field3"); log.WriteLine("getStructField ns1:Struct/ns2:Field3 = " + property.Value + " (" + property.Options.GetOptionsString() + ")"); log.WriteLine(); writeMinorLabel("Get qualifier"); property = meta.GetQualifier(TestData.NS1, "QualProp1", TestData.NS2, "Qual1"); log.WriteLine("getQualifier ns1:QualProp1/?ns2:Qual1 = " + property.Value + " (" + property.Options.GetOptionsString() + ")"); try { meta.GetQualifier(null, "ns1:QualProp1", TestData.NS2, "Qual1"); } catch (XmpException e) { log.WriteLine("getQualifier with no schema URI - threw XmpException #" + e.GetErrorCode() + " : " + e.Message); } property = meta.GetQualifier(TestData.NS1, "QualProp3", XmpConstants.NsXml, "xml:lang"); log.WriteLine("getQualifier ns1:QualProp3/@xml-lang = " + property.Value + " (" + property.Options.GetOptionsString() + ")"); property = meta.GetQualifier(TestData.NS1, "QualProp3", TestData.NS2, "ns2:Qual"); log.WriteLine("getQualifier ns1:QualProp3/?ns2:Qual = " + property.Value + " (" + property.Options.GetOptionsString() + ")"); log.WriteLine(); writeMinorLabel("Get non-simple properties"); property = meta.GetProperty(TestData.NS1, "Bag"); log.WriteLine("getProperty ns1:Bag = " + property.Value + " (" + property.Options.GetOptionsString() + ")"); property = meta.GetProperty(TestData.NS1, "Seq"); log.WriteLine("getProperty ns1:Seq = " + property.Value + " (" + property.Options.GetOptionsString() + ")"); property = meta.GetProperty(TestData.NS1, "Alt"); log.WriteLine("getProperty ns1:Alt = " + property.Value + " (" + property.Options.GetOptionsString() + ")"); property = meta.GetProperty(TestData.NS1, "Struct"); log.WriteLine("getProperty ns1:Struct = " + property.Value + " (" + property.Options.GetOptionsString() + ")"); log.WriteLine(); writeMinorLabel("Get not existing properties"); try { meta.GetProperty("ns:bogus/", "Bogus"); } catch (XmpException e) { log.WriteLine("getProperty with bogus schema URI - threw XmpException #" + e.GetErrorCode() + " : " + e.Message); } property = meta.GetProperty (TestData.NS1, "Bogus"); log.WriteLine ("getProperty ns1:Bogus (not existing) = " + property); property = meta.GetArrayItem(TestData.NS1, "Bag", 99); log.WriteLine ("ArrayItem ns1:Bag[99] (not existing) = " + property); property = meta.GetStructField(TestData.NS1, "Struct", TestData.NS2, "Bogus"); log.WriteLine ("getStructField ns1:Struct/ns2:Bogus (not existing) = " + property); property = meta.GetQualifier (TestData.NS1, "Prop", TestData.NS2, "Bogus"); log.WriteLine ("getQualifier ns1:Prop/?ns2:Bogus (not existing) = " + property); }
/** * Test getProperty, deleteProperty and related methods. * @param meta a predefined <code>XmpMeta</code> object. * @throws XmpException Forwards exceptions */ private void CoverGetPropertyMethods(IXmpMeta meta) { WriteMajorLabel("Test getProperty, deleteProperty and related methods"); meta.DeleteProperty(TestData.NS1, "QualProp1"); // ! Start with fresh qualifiers. meta.DeleteProperty(TestData.NS1, "ns1:QualProp2"); meta.DeleteProperty(TestData.NS1, "ns1:QualProp3"); meta.DeleteProperty(TestData.NS1, "QualProp4"); WriteMinorLabel("Set properties with qualifier"); meta.SetProperty(TestData.NS1, "QualProp1", "Prop value"); meta.SetQualifier(TestData.NS1, "QualProp1", TestData.NS2, "Qual1", "Qual1 value"); meta.SetProperty(TestData.NS1, "QualProp2", "Prop value"); meta.SetQualifier(TestData.NS1, "QualProp2", XmpConstants.NsXml, "lang", "en-us"); meta.SetProperty(TestData.NS1, "QualProp3", "Prop value"); meta.SetQualifier(TestData.NS1, "QualProp3", XmpConstants.NsXml, "lang", "en-us"); meta.SetQualifier(TestData.NS1, "QualProp3", TestData.NS2, "Qual", "Qual value"); meta.SetProperty(TestData.NS1, "QualProp4", "Prop value"); meta.SetQualifier(TestData.NS1, "QualProp4", TestData.NS2, "Qual", "Qual value"); meta.SetQualifier(TestData.NS1, "QualProp4", XmpConstants.NsXml, "lang", "en-us"); PrintXmpMeta(meta, "XMP object"); WriteMinorLabel("Get simple properties"); var property = meta.GetProperty(TestData.NS1, "Prop"); _log.WriteLine("getProperty ns1:Prop = " + property.Value + " (" + property.Options.GetOptionsString() + ")"); property = meta.GetProperty(TestData.NS1, "ns1:XMLProp"); _log.WriteLine("getProperty ns1:XMLProp = " + property.Value + " (" + property.Options.GetOptionsString() + ")"); property = meta.GetProperty(TestData.NS1, "ns1:URIProp"); _log.WriteLine("getProperty ns1:URIProp = " + property.Value + " (" + property.Options.GetOptionsString() + ")"); property = meta.GetArrayItem(TestData.NS1, "Bag", 2); _log.WriteLine("getArrayItem ns1:Bag[2] = " + property.Value + " (" + property.Options.GetOptionsString() + ")"); try { meta.GetArrayItem(null, "ns1:Bag", 1); } catch (XmpException e) { _log.WriteLine("getArrayItem with no schema URI - threw XmpException #" + e.ErrorCode + " : " + e.Message + ")"); } WriteMinorLabel("Get array items and struct fields"); property = meta.GetArrayItem(TestData.NS1, "ns1:Seq", 1); _log.WriteLine("getArrayItem ns1:Seq[1] = " + property.Value + " (" + property.Options.GetOptionsString() + ")"); property = meta.GetArrayItem(TestData.NS1, "ns1:Alt", 1); _log.WriteLine("getArrayItem ns1:Alt[1] = " + property.Value + " (" + property.Options.GetOptionsString() + ")"); property = meta.GetStructField(TestData.NS1, "Struct", TestData.NS2, "Field1"); _log.WriteLine("getStructField ns1:Struct/ns2:Field1 = " + property.Value + " (" + property.Options.GetOptionsString() + ")"); property = meta.GetStructField(TestData.NS1, "ns1:Struct", TestData.NS2, "Field2"); _log.WriteLine("getStructField ns1:Struct/ns2:Field2 = " + property.Value + " (" + property.Options.GetOptionsString() + ")"); property = meta.GetStructField(TestData.NS1, "ns1:Struct", TestData.NS2, "ns2:Field3"); _log.WriteLine("getStructField ns1:Struct/ns2:Field3 = " + property.Value + " (" + property.Options.GetOptionsString() + ")"); property = meta.GetStructField(TestData.NS1, "ns1:Struct", TestData.NS2, "ns2:Field3"); _log.WriteLine("getStructField ns1:Struct/ns2:Field3 = " + property.Value + " (" + property.Options.GetOptionsString() + ")"); property = meta.GetStructField(TestData.NS1, "ns1:Struct", TestData.NS2, "ns2:Field3"); _log.WriteLine("getStructField ns1:Struct/ns2:Field3 = " + property.Value + " (" + property.Options.GetOptionsString() + ")"); WriteMinorLabel("Get qualifier"); property = meta.GetQualifier(TestData.NS1, "QualProp1", TestData.NS2, "Qual1"); _log.WriteLine("getQualifier ns1:QualProp1/?ns2:Qual1 = " + property.Value + " (" + property.Options.GetOptionsString() + ")"); try { meta.GetQualifier(null, "ns1:QualProp1", TestData.NS2, "Qual1"); } catch (XmpException e) { _log.WriteLine("getQualifier with no schema URI - threw XmpException #" + e.ErrorCode + " : " + e.Message); } property = meta.GetQualifier(TestData.NS1, "QualProp3", XmpConstants.NsXml, "xml:lang"); _log.WriteLine("getQualifier ns1:QualProp3/@xml-lang = " + property.Value + " (" + property.Options.GetOptionsString() + ")"); property = meta.GetQualifier(TestData.NS1, "QualProp3", TestData.NS2, "ns2:Qual"); _log.WriteLine("getQualifier ns1:QualProp3/?ns2:Qual = " + property.Value + " (" + property.Options.GetOptionsString() + ")"); WriteMinorLabel("Get non-simple properties"); property = meta.GetProperty(TestData.NS1, "Bag"); _log.WriteLine("getProperty ns1:Bag = " + property.Value + " (" + property.Options.GetOptionsString() + ")"); property = meta.GetProperty(TestData.NS1, "Seq"); _log.WriteLine("getProperty ns1:Seq = " + property.Value + " (" + property.Options.GetOptionsString() + ")"); property = meta.GetProperty(TestData.NS1, "Alt"); _log.WriteLine("getProperty ns1:Alt = " + property.Value + " (" + property.Options.GetOptionsString() + ")"); property = meta.GetProperty(TestData.NS1, "Struct"); _log.WriteLine("getProperty ns1:Struct = " + property.Value + " (" + property.Options.GetOptionsString() + ")"); WriteMinorLabel("Get not existing properties"); try { meta.GetProperty("ns:bogus/", "Bogus"); } catch (XmpException e) { _log.WriteLine("getProperty with bogus schema URI - threw XmpException #" + e.ErrorCode + " : " + e.Message); } property = meta.GetProperty(TestData.NS1, "Bogus"); _log.WriteLine("getProperty ns1:Bogus (not existing) = " + property); property = meta.GetArrayItem(TestData.NS1, "Bag", 99); _log.WriteLine("ArrayItem ns1:Bag[99] (not existing) = " + property); property = meta.GetStructField(TestData.NS1, "Struct", TestData.NS2, "Bogus"); _log.WriteLine("getStructField ns1:Struct/ns2:Bogus (not existing) = " + property); property = meta.GetQualifier(TestData.NS1, "Prop", TestData.NS2, "Bogus"); _log.WriteLine("getQualifier ns1:Prop/?ns2:Bogus (not existing) = " + property); }