Bladeren bron

Add tests for dummies and DaysSinceStart

Vadim Markovtsev 7 jaren geleden
bovenliggende
commit
31edde10ed
4 gewijzigde bestanden met toevoegingen van 106 en 4 verwijderingen
  1. 2 2
      blob_cache.go
  2. 77 0
      day_test.go
  3. 2 2
      dummies.go
  4. 25 0
      dummies_test.go

+ 2 - 2
blob_cache.go

@@ -56,7 +56,7 @@ func (self *BlobCache) Consume(deps map[string]interface{}) (map[string]interfac
 					fmt.Fprintf(os.Stderr, "file from %s %s\n", change.From.Name, change.From.TreeEntry.Hash)
 				} else {
 					cache[change.From.TreeEntry.Hash], err = createDummyBlob(
-						&change.From.TreeEntry.Hash)
+						change.From.TreeEntry.Hash)
 				}
 			}
 		case merkletrie.Modify:
@@ -108,7 +108,7 @@ func (cache *BlobCache) getBlob(entry *object.ChangeEntry, fileGetter FileGetter
 		_, exists := modules.Submodules[entry.Name]
 		if exists {
 			// we found that this is a submodule
-			return createDummyBlob(&entry.TreeEntry.Hash)
+			return createDummyBlob(entry.TreeEntry.Hash)
 		}
 		return nil, err
 	}

+ 77 - 0
day_test.go

@@ -0,0 +1,77 @@
+package hercules
+
+import (
+	"testing"
+
+	"github.com/stretchr/testify/assert"
+	"gopkg.in/src-d/go-git.v4/plumbing"
+)
+
+func fixtureDaysSinceStart() *DaysSinceStart {
+	dss := DaysSinceStart{}
+	dss.Initialize(testRepository)
+	return &dss
+}
+
+func TestDaysSinceStartMeta(t *testing.T) {
+	dss := fixtureDaysSinceStart()
+	assert.Equal(t, dss.Name(), "DaysSinceStart")
+	assert.Equal(t, len(dss.Provides()), 1)
+	assert.Equal(t, dss.Provides()[0], "day")
+	assert.Equal(t, len(dss.Requires()), 0)
+}
+
+func TestDaysSinceStartFinalize(t *testing.T) {
+	dss := fixtureDaysSinceStart()
+	r := dss.Finalize()
+	assert.Nil(t, r)
+}
+
+func TestDaysSinceStartConsume(t *testing.T) {
+	dss := fixtureDaysSinceStart()
+	deps := map[string]interface{}{}
+	commit, _ := testRepository.CommitObject(plumbing.NewHash(
+		"cce947b98a050c6d356bc6ba95030254914027b1"))
+	deps["commit"] = commit
+	deps["index"] = 0
+	res, err := dss.Consume(deps)
+	assert.Nil(t, err)
+	assert.Equal(t, res["day"].(int), 0)
+	assert.Equal(t, dss.previousDay, 0)
+
+	commit, _ = testRepository.CommitObject(plumbing.NewHash(
+		"fc9ceecb6dabcb2aab60e8619d972e8d8208a7df"))
+	deps["commit"] = commit
+	deps["index"] = 10
+	res, err = dss.Consume(deps)
+	assert.Nil(t, err)
+	assert.Equal(t, res["day"].(int), 1)
+	assert.Equal(t, dss.previousDay, 1)
+
+	commit, _ = testRepository.CommitObject(plumbing.NewHash(
+		"a3ee37f91f0d705ec9c41ae88426f0ae44b2fbc3"))
+	deps["commit"] = commit
+	deps["index"] = 20
+	res, err = dss.Consume(deps)
+	assert.Nil(t, err)
+  assert.Equal(t, res["day"].(int), 1)
+	assert.Equal(t, dss.previousDay, 1)
+
+	commit, _ = testRepository.CommitObject(plumbing.NewHash(
+		"a8b665a65d7aced63f5ba2ff6d9b71dac227f8cf"))
+	deps["commit"] = commit
+	deps["index"] = 20
+	res, err = dss.Consume(deps)
+	assert.Nil(t, err)
+  assert.Equal(t, res["day"].(int), 2)
+	assert.Equal(t, dss.previousDay, 2)
+
+	commit, _ = testRepository.CommitObject(plumbing.NewHash(
+		"186ff0d7e4983637bb3762a24d6d0a658e7f4712"))
+	deps["commit"] = commit
+	deps["index"] = 30
+	res, err = dss.Consume(deps)
+	assert.Nil(t, err)
+  assert.Equal(t, res["day"].(int), 2)
+	assert.Equal(t, dss.previousDay, 2)
+}

+ 2 - 2
dummies.go

@@ -52,6 +52,6 @@ func (obj dummyEncodedObject) Writer() (io.WriteCloser, error) {
 	return dummyIO{}, nil
 }
 
-func createDummyBlob(hash *plumbing.Hash) (*object.Blob, error) {
-	return object.DecodeBlob(dummyEncodedObject{*hash})
+func createDummyBlob(hash plumbing.Hash) (*object.Blob, error) {
+	return object.DecodeBlob(dummyEncodedObject{hash})
 }

+ 25 - 0
dummies_test.go

@@ -0,0 +1,25 @@
+package hercules
+
+import (
+	"io"
+	"testing"
+
+	"gopkg.in/src-d/go-git.v4/plumbing"
+	"github.com/stretchr/testify/assert"
+)
+
+func TestCreateDummyBlob(t *testing.T) {
+  dummy, err := createDummyBlob(plumbing.NewHash("334cde09da4afcb74f8d2b3e6fd6cce61228b485"))
+	assert.Nil(t, err)
+	assert.Equal(t, dummy.Hash.String(), "334cde09da4afcb74f8d2b3e6fd6cce61228b485")
+	assert.Equal(t, dummy.Size, int64(0))
+	reader, err := dummy.Reader()
+	assert.Nil(t, err)
+	buffer := make([]byte, 1)
+	buffer[0] = 0xff
+	n, err := reader.Read(buffer)
+	assert.Equal(t, err, io.EOF)
+	assert.Equal(t, n, 0)
+	assert.Equal(t, buffer[0], byte(0xff))
+	reader.Close()
+}