diff options
| author | Carlos Martín Nieto <[email protected]> | 2014-04-26 20:42:18 +0200 |
|---|---|---|
| committer | Carlos Martín Nieto <[email protected]> | 2014-04-26 20:42:18 +0200 |
| commit | 4df7eb516c7c73f82a62a8bdb2ac33f2b73ab981 (patch) | |
| tree | 3291dab43f1937316037a27380e8fe610f6ada90 /merge_test.go | |
| parent | 57f14a25914b431a9034b252314edf74cf7eecbf (diff) | |
| parent | 9d8cbe7547d499fefb69bf42e975a2f7e8e7fca4 (diff) | |
Merge pull request #63 from jezell/jezell/merge
Merge functions (in progress)
Diffstat (limited to 'merge_test.go')
| -rw-r--r-- | merge_test.go | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/merge_test.go b/merge_test.go new file mode 100644 index 0000000..3f9dc33 --- /dev/null +++ b/merge_test.go @@ -0,0 +1,75 @@ +package git + +import ( + "testing" +) + +func TestMergeWithSelf(t *testing.T) { + + repo := createTestRepo(t) + seedTestRepo(t, repo) + + master, err := repo.LookupReference("refs/heads/master") + checkFatal(t, err) + + mergeHead, err := repo.MergeHeadFromRef(master) + checkFatal(t, err) + + mergeHeads := make([]*MergeHead, 1) + mergeHeads[0] = mergeHead + err = repo.Merge(mergeHeads, nil, nil) + checkFatal(t, err) +} + +func TestMergeAnalysisWithSelf(t *testing.T) { + + repo := createTestRepo(t) + seedTestRepo(t, repo) + + master, err := repo.LookupReference("refs/heads/master") + checkFatal(t, err) + + mergeHead, err := repo.MergeHeadFromRef(master) + checkFatal(t, err) + + mergeHeads := make([]*MergeHead, 1) + mergeHeads[0] = mergeHead + a, err := repo.MergeAnalysis(mergeHeads) + checkFatal(t, err) + + if a != MergeAnalysisUpToDate { + t.Fatalf("Expected up to date merge, not %v", a) + } +} + +func TestMergeSameFile(t *testing.T) { + + file := MergeFileInput{ + Path: "test", + Mode: 33188, + Contents: []byte("hello world"), + } + + result, err := MergeFile(file, file, file, nil) + checkFatal(t, err) + if !result.Automergeable { + t.Fatal("expected automergeable") + } + if result.Path != file.Path { + t.Fatal("path was incorrect") + } + if result.Mode != file.Mode { + t.Fatal("mode was incorrect") + } + + compareBytes(t, file.Contents, result.Contents) + +} + +func compareBytes(t *testing.T, expected, actual []byte) { + for i, v := range expected { + if actual[i] != v { + t.Fatalf("Bad bytes") + } + } +} |
