[gxml] Added test for desable/enable deserialize SerializableArrayList



commit 9720ad9fdcc4704c465e8d83ca607cc4b651ac75
Author: Daniel Espinosa <esodan gmail com>
Date:   Tue Feb 23 22:45:12 2016 -0600

    Added test for desable/enable deserialize SerializableArrayList

 test/SerializableGeeArrayListTest.vala |   40 ++++++++++++++++++++++++++++++++
 1 files changed, 40 insertions(+), 0 deletions(-)
---
diff --git a/test/SerializableGeeArrayListTest.vala b/test/SerializableGeeArrayListTest.vala
index fdd2225..36bf0b8 100644
--- a/test/SerializableGeeArrayListTest.vala
+++ b/test/SerializableGeeArrayListTest.vala
@@ -31,6 +31,16 @@ class AElement : SerializableObjectModel
   public string name { get; set; }
   public AElement.named (string name) { this.name = name; }
   public override string to_string () { return name; }
+  public class Array : SerializableArrayList<AElement> {
+    public bool enable_serialize { get; set; default = false; }
+    public override bool deserialize_proceed () { return enable_serialize; }
+  }
+}
+
+class CElement : SerializableObjectModel {
+  public AElement.Array elements { get; set; default = new AElement.Array (); }
+  public override string node_name () { return "CElement"; }
+  public override string to_string () { return "CElement"; }
 }
 
 class SerializableGeeArrayListTest : GXmlTest
@@ -203,5 +213,35 @@ class SerializableGeeArrayListTest : GXmlTest
         assert_not_reached ();
       }
     });
+    Test.add_func ("/gxml/serializable/serializable_array_list/deserialize-enable",
+    () => {
+      try {
+        double time;
+        Test.timer_start ();
+        var d = new TwDocument ();
+        var ce = new CElement ();
+        for (int i = 0; i < 10000; i++) {
+          var e = new AElement ();
+          ce.elements.add (e);
+        }
+        time = Test.timer_elapsed ();
+        Test.minimized_result (time, "Created document: %g seconds", time);
+        ce.serialize (d);
+        Test.timer_start ();
+        var cep = new CElement ();
+        cep.elements.enable_serialize = false;
+        cep.deserialize (d);
+        time = Test.timer_elapsed ();
+        Test.minimized_result (time, "Enable Deserialize Collection. Deserialized from doc: %g seconds", 
time);
+        var cet = new CElement ();
+        cet.elements.enable_serialize = true;
+        cet.deserialize (d);
+        time = Test.timer_elapsed ();
+        Test.minimized_result (time, "Disable Deserialize Collection. Deserialized from doc: %g seconds", 
time);
+      } catch (GLib.Error e) {
+        GLib.message ("ERROR: "+e.message);
+        assert_not_reached ();
+      }
+    });
   }
 }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]