From 621397026ce94dc3a536b7dbdde31ad00b0b14a8 Mon Sep 17 00:00:00 2001 From: Carlos Martín Nieto Date: Wed, 11 Sep 2013 19:17:45 +0200 Subject: Wrap the odb streams The interface to these streams should be what you expect from Go, and both have Write and Close functions so they implement Reader/ReadCloser and Write/WriteCloser respectively. --- odb_test.go | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 odb_test.go (limited to 'odb_test.go') diff --git a/odb_test.go b/odb_test.go new file mode 100644 index 0000000..bf1f847 --- /dev/null +++ b/odb_test.go @@ -0,0 +1,35 @@ +package git + +import ( + "io" + "os" + "testing" +) + +func TestOdbStream(t *testing.T) { + repo := createTestRepo(t) + defer os.RemoveAll(repo.Workdir()) + _, _ = seedTestRepo(t, repo) + + odb, error := repo.Odb() + checkFatal(t, error) + + str := "hello, world!" + + stream, error := odb.NewWriteStream(len(str), OBJ_BLOB) + checkFatal(t, error) + n, error := io.WriteString(stream, str) + checkFatal(t, error) + if n != len(str) { + t.Fatalf("Bad write length %v != %v", n, len(str)) + } + + error = stream.Close() + checkFatal(t, error) + + expectedId, error := NewOidFromString("30f51a3fba5274d53522d0f19748456974647b4f") + checkFatal(t, error) + if stream.Id.Cmp(expectedId) != 0 { + t.Fatal("Wrong data written") + } +} \ No newline at end of file -- cgit v1.2.3