First cut at reintroducing object serialization.
[catagits/Gitalist.git] / t / 02git_Repository.t
index d12fd14..ba86a79 100644 (file)
@@ -83,3 +83,46 @@ my $owner = $proj->owner;
 is_flagged_utf8($owner, "Owner name is flagged as utf8");
 is_sane_utf8($owner, "Owner name is not double-encoded");
 is($owner, decode_utf8("T\x{c3}\x{a9}st"),  "Owner name is correct");
+
+is_deeply $proj->pack,  {
+    __CLASS__   => 'Gitalist::Git::Repository',
+    description => 'some test repository',
+    heads       => [
+        {
+            __CLASS__   => 'Gitalist::Git::Head',
+            committer   => 'Zachary Stevens <zts@cryptocracy.com>',
+            last_change => '2009-11-12T19:00:34Z',
+            name        => 'branch1',
+            sha1        => '0710a7c8ee11c73e8098d08f9384c2a839c65e4e'
+        },
+        {
+            __CLASS__   => 'Gitalist::Git::Head',
+            committer   => 'Florian Ragwitz <rafl@debian.org>',
+            last_change => '2007-03-06T20:44:35Z',
+            name        => 'master',
+            sha1        => '36c6c6708b8360d7023e8a1649c45bcf9b3bd818'
+        }
+    ],
+    is_bare     => 1,
+    last_change => '2009-11-12T19:00:34Z',
+    name        => 'repo1',
+    owner       => "T\351st",
+    references  => {
+        "36c6c6708b8360d7023e8a1649c45bcf9b3bd818" => [
+            'heads/master',
+            'tags/0.01'
+        ],
+        "0710a7c8ee11c73e8098d08f9384c2a839c65e4e" => [ 'heads/branch1' ]
+    },
+    tags        => [ {
+        __CLASS__
+             => 'Gitalist::Git::Tag',
+        committer
+             => 'Florian Ragwitz <rafl@debian.org>',
+        last_change
+             => '2007-03-06T20:44:35Z',
+        name    => 0.01,
+        sha1    => '36c6c6708b8360d7023e8a1649c45bcf9b3bd818',
+        type    => 'commit'
+    } ]
+}, 'Serialized correctly';