about summary refs log tree commit diff
path: root/third_party/go/git-appraise/repository/git_test.go
blob: e1a9e2b2eaceec7cdb41ea4648eafede0aae4627 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
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")
	}
}