aboutsummaryrefslogtreecommitdiff
path: root/obj_blob_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'obj_blob_test.go')
-rw-r--r--obj_blob_test.go120
1 files changed, 0 insertions, 120 deletions
diff --git a/obj_blob_test.go b/obj_blob_test.go
deleted file mode 100644
index 72ef0a23..00000000
--- a/obj_blob_test.go
+++ /dev/null
@@ -1,120 +0,0 @@
-package furgit
-
-import (
- "bytes"
- "fmt"
- "testing"
-)
-
-func TestBlobRead(t *testing.T) {
- repoPath, cleanup := setupTestRepo(t)
- defer cleanup()
-
- testData := []byte("Hello, Furgit!\nThis is test blob data.")
- gitHash := gitHashObject(t, repoPath, "blob", testData)
-
- repo, err := OpenRepository(repoPath)
- if err != nil {
- t.Fatalf("OpenRepository failed: %v", err)
- }
- defer func() {
- _ = repo.Close()
- }()
-
- hash, _ := repo.ParseHash(gitHash)
- obj, err := repo.ReadObject(hash)
- if err != nil {
- t.Fatalf("ReadObject failed: %v", err)
- }
-
- blob, ok := obj.(*StoredBlob)
- if !ok {
- t.Fatalf("expected *StoredBlob, got %T", obj)
- }
-
- if !bytes.Equal(blob.Data, testData) {
- t.Errorf("Data mismatch: got %q, want %q", blob.Data, testData)
- }
- if blob.Hash() != hash {
- t.Errorf("Hash(): got %s, want %s", blob.Hash(), hash)
- }
- if blob.ObjectType() != ObjectTypeBlob {
- t.Errorf("ObjectType(): got %d, want %d", blob.ObjectType(), ObjectTypeBlob)
- }
-
- gitData := gitCatFile(t, repoPath, "blob", gitHash)
- if !bytes.Equal(blob.Data, gitData) {
- t.Error("furgit data doesn't match git data")
- }
-}
-
-func TestBlobWrite(t *testing.T) {
- repoPath, cleanup := setupTestRepo(t)
- defer cleanup()
-
- repo, err := OpenRepository(repoPath)
- if err != nil {
- t.Fatalf("OpenRepository failed: %v", err)
- }
- defer func() {
- _ = repo.Close()
- }()
-
- testData := []byte("Test data written by furgit")
- blob := &Blob{Data: testData}
-
- hash, err := repo.WriteLooseObject(blob)
- if err != nil {
- t.Fatalf("WriteLooseObject failed: %v", err)
- }
-
- gitType := string(gitCatFile(t, repoPath, "-t", hash.String()))
- if gitType != "blob" {
- t.Errorf("git type: got %q, want %q", gitType, "blob")
- }
-
- gitData := gitCatFile(t, repoPath, "blob", hash.String())
- if !bytes.Equal(gitData, testData) {
- t.Error("git data doesn't match written data")
- }
-
- gitSize := string(gitCatFile(t, repoPath, "-s", hash.String()))
- if gitSize != fmt.Sprintf("%d", len(testData)) {
- t.Errorf("git size: got %s, want %d", gitSize, len(testData))
- }
-}
-
-func TestBlobRoundtrip(t *testing.T) {
- repoPath, cleanup := setupTestRepo(t)
- defer cleanup()
-
- repo, err := OpenRepository(repoPath)
- if err != nil {
- t.Fatalf("OpenRepository failed: %v", err)
- }
- defer func() {
- _ = repo.Close()
- }()
-
- testData := []byte("Roundtrip test data")
- blob := &Blob{Data: testData}
-
- hash, err := repo.WriteLooseObject(blob)
- if err != nil {
- t.Fatalf("WriteLooseObject failed: %v", err)
- }
-
- obj, err := repo.ReadObject(hash)
- if err != nil {
- t.Fatalf("ReadObject failed: %v", err)
- }
-
- readBlob, ok := obj.(*StoredBlob)
- if !ok {
- t.Fatalf("expected *StoredBlob, got %T", obj)
- }
-
- if !bytes.Equal(readBlob.Data, testData) {
- t.Error("roundtrip data mismatch")
- }
-}