[gxml] Fixed SerializableTreeMap lowercase node's name
- From: Daniel Espinosa Ortiz <despinosa src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gxml] Fixed SerializableTreeMap lowercase node's name
- Date: Thu, 7 May 2015 18:24:07 +0000 (UTC)
commit da72e81b03bda6fcd691352e28f7b651f650f1f0
Author: Daniel Espinosa <esodan gmail com>
Date: Thu May 7 13:22:12 2015 -0500
Fixed SerializableTreeMap lowercase node's name
* Added Unit Test
gxml/SerializableGeeTreeMap.vala | 2 +-
test/SerializableGeeTreeMapTest.vala | 29 +++++++++++++++++++++++++++++
test/gxml-performance.vala | 13 +++++++++++++
test/test-collection.xml | 2 ++
4 files changed, 45 insertions(+), 1 deletions(-)
---
diff --git a/gxml/SerializableGeeTreeMap.vala b/gxml/SerializableGeeTreeMap.vala
index 72d4323..c0639d6 100644
--- a/gxml/SerializableGeeTreeMap.vala
+++ b/gxml/SerializableGeeTreeMap.vala
@@ -131,7 +131,7 @@ public class GXml.SerializableTreeMap<K,V> : Gee.TreeMap<K,V>, Serializable, Ser
stdout.printf (@"Node $(node.name) for type '$(get_type ().name ())'\n");
#endif
var obj = Object.new (value_type);
- if (n.name == ((Serializable) obj).node_name ()) {
+ if (n.name.down () == ((Serializable) obj).node_name ().down ()) {
((Serializable) obj).deserialize (n);
@set (((SerializableMapKey<K>) obj).get_map_key (), obj);
}
diff --git a/test/SerializableGeeTreeMapTest.vala b/test/SerializableGeeTreeMapTest.vala
index e5654bc..d3a1f13 100644
--- a/test/SerializableGeeTreeMapTest.vala
+++ b/test/SerializableGeeTreeMapTest.vala
@@ -247,5 +247,34 @@ class SerializableGeeTreeMapTest : GXmlTest
assert_not_reached ();
}
});
+ Test.add_func ("/gxml/serializable/serializable_tree_map/deserialize-node-names",
+ () => {
+ try {
+ var d = new xDocument.from_path (GXmlTestConfig.TEST_DIR + "/test-collection.xml");
+ var bs = new BookStore ();
+ bs.deserialize (d);
+ assert (bs.name == "The Great Book");
+ assert (bs.books.size == 3);
+ var b = bs.books.first ();
+ assert (b != null);
+ assert (b.name != null);
+ assert (b.name.get_name () == "Book1");
+ assert (b.year == "2015");
+ assert (b.authors != null);
+ assert (b.authors.array != null);
+ assert (b.authors.array.size == 2);
+ assert (b.resumes != null);
+ assert (b.resumes.size == 2);
+ var r = b.resumes.get ("II");
+ assert (r != null);
+ assert (r.chapter == "II");
+ assert (r.text == "Nothing to say");
+ } catch (GLib.Error e) {
+#if DEBUG
+ GLib.message ("ERROR: "+e.message);
+#endif
+ assert_not_reached ();
+ }
+ });
}
}
diff --git a/test/gxml-performance.vala b/test/gxml-performance.vala
index fc5da59..bdff794 100644
--- a/test/gxml-performance.vala
+++ b/test/gxml-performance.vala
@@ -73,6 +73,16 @@ class Category : SerializableObjectModel, SerializableMapKey<string>
public class Map : SerializableHashMap<string,Category> {}
}
+
+class Resume : SerializableObjectModel, SerializableMapKey<string>
+{
+ public string chapter { get; set; }
+ public string text { get; set; }
+ public string get_map_key () { return chapter; }
+ public override string to_string () { return "Chapter: "+chapter+"\n"+text; }
+ public class Map : SerializableTreeMap<string,Resume> {}
+}
+
class Book : SerializableContainer
{
public string year { get; set; }
@@ -81,6 +91,7 @@ class Book : SerializableContainer
public Authors authors { get; set; }
public Inventory.DualKeyMap inventory_registers { get; set; }
public Category.Map categories { get; set; }
+ public Resume.Map resumes { get; set; }
public override string to_string () { return @"$(name.get_name ()), $(year)"; }
public override void init_containers ()
{
@@ -88,6 +99,8 @@ class Book : SerializableContainer
inventory_registers = new Inventory.DualKeyMap ();
if (categories == null)
categories = new Category.Map ();
+ if (resumes == null)
+ resumes = new Resume.Map ();
}
public class Array : SerializableArrayList<Book> {}
}
diff --git a/test/test-collection.xml b/test/test-collection.xml
index a2f87f9..3bc0258 100644
--- a/test/test-collection.xml
+++ b/test/test-collection.xml
@@ -18,6 +18,8 @@
<inventory number="1" row="5" inventory="K004"/>
<category name="Fiction"/>
<category name="Motivational"/>
+ <resume chapter = "I" text="Nothing to say"/>
+ <resume chapter = "II" text="Nothing to say"/>
</book>
<book year="2015" isbn="ISBN0000001">
<name>Book2</name>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]