about summary refs log tree commit diff
path: root/third_party/go/git-appraise/repository/git_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/go/git-appraise/repository/git_test.go')
-rw-r--r--third_party/go/git-appraise/repository/git_test.go94
1 files changed, 94 insertions, 0 deletions
diff --git a/third_party/go/git-appraise/repository/git_test.go b/third_party/go/git-appraise/repository/git_test.go
new file mode 100644
index 0000000000..e1a9e2b2ea
--- /dev/null
+++ b/third_party/go/git-appraise/repository/git_test.go
@@ -0,0 +1,94 @@
+/*
+Copyright 2016 Google Inc. All rights reserved.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package repository
+
+import (
+	"bytes"
+	"testing"
+)
+
+const (
+	simpleBatchCheckOutput = `ddbdcb9d5aa71d35de481789bacece9a2f8138d0 commit
+de9ebcdf2a1e93365eefc2739f73f2c68a280c11 commit
+def9abf52f9a17d4f168e05bc420557a87a55961 commit
+df324616ea2bc9bf6fc7025fc80a373ecec687b6 missing
+dfdd159c9c11c08d84c8c050d2a1a4db29147916 commit
+e4e48e2b4d76ac305cf76fee1d1c8c0283127d71 commit
+e6ae4ed08704fe3c258ab486b07a36e28c3c238a commit
+e807a993d1807b154294b9875b9d926b6f246d0c commit
+e90f75882526e9bc5a71af64d60ea50092ed0b1d commit`
+	simpleBatchCatFileOutput = `c1f5a5f135b171cc963b822d338000d185f1ae4f
+342
+{"timestamp":"1450315153","v":0,"agent":"Jenkins(1.627) GitNotesJobLogger","url":"https://jenkins-dot-developer-tools-bundle.appspot.com/job/git-appraise/105/"}
+
+{"timestamp":"1450315161","v":0,"agent":"Jenkins(1.627) GitNotesJobLogger","url":"https://jenkins-dot-developer-tools-bundle.appspot.com/job/git-appraise/105/","status":"success"}
+
+31ea4952450bbe5db0d6a7a7903e451925106c0f
+141
+{"timestamp":"1440202534","url":"https://travis-ci.org/google/git-appraise/builds/76722074","agent":"continuous-integration/travis-ci/push"}
+
+bde25250a9f6dc9c56f16befa5a2d73c8558b472
+342
+{"timestamp":"1450434854","v":0,"agent":"Jenkins(1.627) GitNotesJobLogger","url":"https://jenkins-dot-developer-tools-bundle.appspot.com/job/git-appraise/112/"}
+
+{"timestamp":"1450434860","v":0,"agent":"Jenkins(1.627) GitNotesJobLogger","url":"https://jenkins-dot-developer-tools-bundle.appspot.com/job/git-appraise/112/","status":"success"}
+
+3128dc6881bf7647aea90fef1f4fbf883df6a8fe
+342
+{"timestamp":"1457445850","v":0,"agent":"Jenkins(1.627) GitNotesJobLogger","url":"https://jenkins-dot-developer-tools-bundle.appspot.com/job/git-appraise/191/"}
+
+{"timestamp":"1457445856","v":0,"agent":"Jenkins(1.627) GitNotesJobLogger","url":"https://jenkins-dot-developer-tools-bundle.appspot.com/job/git-appraise/191/","status":"success"}
+
+`
+)
+
+func TestSplitBatchCheckOutput(t *testing.T) {
+	buf := bytes.NewBuffer([]byte(simpleBatchCheckOutput))
+	commitsMap, err := splitBatchCheckOutput(buf)
+	if err != nil {
+		t.Fatal(err)
+	}
+	if !commitsMap["ddbdcb9d5aa71d35de481789bacece9a2f8138d0"] {
+		t.Fatal("Failed to recognize the first commit as valid")
+	}
+	if !commitsMap["de9ebcdf2a1e93365eefc2739f73f2c68a280c11"] {
+		t.Fatal("Failed to recognize the second commit as valid")
+	}
+	if !commitsMap["e90f75882526e9bc5a71af64d60ea50092ed0b1d"] {
+		t.Fatal("Failed to recognize the last commit as valid")
+	}
+	if commitsMap["df324616ea2bc9bf6fc7025fc80a373ecec687b6"] {
+		t.Fatal("Failed to filter out a missing object")
+	}
+}
+
+func TestSplitBatchCatFileOutput(t *testing.T) {
+	buf := bytes.NewBuffer([]byte(simpleBatchCatFileOutput))
+	notesMap, err := splitBatchCatFileOutput(buf)
+	if err != nil {
+		t.Fatal(err)
+	}
+	if len(notesMap["c1f5a5f135b171cc963b822d338000d185f1ae4f"]) != 342 {
+		t.Fatal("Failed to parse the contents of the first cat'ed file")
+	}
+	if len(notesMap["31ea4952450bbe5db0d6a7a7903e451925106c0f"]) != 141 {
+		t.Fatal("Failed to parse the contents of the second cat'ed file")
+	}
+	if len(notesMap["3128dc6881bf7647aea90fef1f4fbf883df6a8fe"]) != 342 {
+		t.Fatal("Failed to parse the contents of the last cat'ed file")
+	}
+}