aboutsummaryrefslogtreecommitdiffstats
path: root/plumbing/format/packfile/object_pack_test.go
diff options
context:
space:
mode:
authorAntonio Navarro Perez <antnavper@gmail.com>2016-12-14 10:20:00 +0100
committerMáximo Cuadros <mcuadros@gmail.com>2016-12-14 10:20:00 +0100
commit500b1e1e183c73e3087710fca2f96acfd2e2d5cb (patch)
treeb2777dedd22f7279f2df7da8eb3b433d560c5701 /plumbing/format/packfile/object_pack_test.go
parent40875ee0df345468f36cb00d54820d622b37cbc5 (diff)
downloadgo-git-500b1e1e183c73e3087710fca2f96acfd2e2d5cb.tar.gz
format/packfile: implement delta encoding (#172)
* format/packfile: implement delta encoding - Added all the logic to the encoder to be able to encode ref-delta and offset-delta objects - Created plumbing.ObjectToPack to handle deltas and standard objects when we are writting them into a packfile - Added specific encoder delta tests, one standard object and one delta, and one standard object and two deltas * Requested changes. * Requested changes
Diffstat (limited to 'plumbing/format/packfile/object_pack_test.go')
-rw-r--r--plumbing/format/packfile/object_pack_test.go40
1 files changed, 40 insertions, 0 deletions
diff --git a/plumbing/format/packfile/object_pack_test.go b/plumbing/format/packfile/object_pack_test.go
new file mode 100644
index 0000000..ddc7ab5
--- /dev/null
+++ b/plumbing/format/packfile/object_pack_test.go
@@ -0,0 +1,40 @@
+package packfile
+
+import (
+ "io"
+
+ "gopkg.in/src-d/go-git.v4/plumbing"
+
+ . "gopkg.in/check.v1"
+)
+
+type ObjectToPackSuite struct{}
+
+var _ = Suite(&ObjectToPackSuite{})
+
+func (s *ObjectToPackSuite) TestObjectToPack(c *C) {
+ obj := &dummyObject{}
+ otp := newObjectToPack(obj)
+ c.Assert(obj, Equals, otp.Object)
+ c.Assert(obj, Equals, otp.Original)
+ c.Assert(otp.Base, IsNil)
+ c.Assert(otp.IsDelta(), Equals, false)
+
+ original := &dummyObject{}
+ delta := &dummyObject{}
+ deltaToPack := newDeltaObjectToPack(otp, original, delta)
+ c.Assert(obj, Equals, deltaToPack.Object)
+ c.Assert(original, Equals, deltaToPack.Original)
+ c.Assert(otp, Equals, deltaToPack.Base)
+ c.Assert(deltaToPack.IsDelta(), Equals, true)
+}
+
+type dummyObject struct{}
+
+func (*dummyObject) Hash() plumbing.Hash { return plumbing.ZeroHash }
+func (*dummyObject) Type() plumbing.ObjectType { return plumbing.InvalidObject }
+func (*dummyObject) SetType(plumbing.ObjectType) {}
+func (*dummyObject) Size() int64 { return 0 }
+func (*dummyObject) SetSize(s int64) {}
+func (*dummyObject) Reader() (io.ReadCloser, error) { return nil, nil }
+func (*dummyObject) Writer() (io.WriteCloser, error) { return nil, nil }