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 package org.eclipse.jgit.lib;
44
45 import static org.junit.Assert.assertEquals;
46 import static org.junit.Assert.assertFalse;
47
48 import java.io.File;
49 import java.io.FileOutputStream;
50 import java.io.IOException;
51 import java.util.Arrays;
52 import java.util.Collections;
53
54 import org.eclipse.jgit.junit.RepositoryTestCase;
55 import org.junit.Test;
56
57 public class MergeHeadMsgTest extends RepositoryTestCase {
58 private static final String mergeMsg = "merge a and b";
59
60 private static final String sampleId = "1c6db447abdbb291b25f07be38ea0b1bf94947c5";
61
62 @Test
63 public void testReadWriteMergeHeads() throws IOException {
64 assertEquals(db.readMergeHeads(), null);
65 db.writeMergeHeads(Arrays.asList(ObjectId.zeroId(),
66 ObjectId.fromString(sampleId)));
67 assertEquals(read(new File(db.getDirectory(), "MERGE_HEAD")), "0000000000000000000000000000000000000000\n1c6db447abdbb291b25f07be38ea0b1bf94947c5\n");
68 assertEquals(db.readMergeHeads().size(), 2);
69 assertEquals(db.readMergeHeads().get(0), ObjectId.zeroId());
70 assertEquals(db.readMergeHeads().get(1), ObjectId.fromString(sampleId));
71
72 FileOutputStream fos = new FileOutputStream(new File(db.getDirectory(),
73 "MERGE_HEAD"));
74 try {
75 fos.write("0000000000000000000000000000000000000000\n1c6db447abdbb291b25f07be38ea0b1bf94947c5\n".getBytes(Constants.CHARACTER_ENCODING));
76 } finally {
77 fos.close();
78 }
79 assertEquals(db.readMergeHeads().size(), 2);
80 assertEquals(db.readMergeHeads().get(0), ObjectId.zeroId());
81 assertEquals(db.readMergeHeads().get(1), ObjectId.fromString(sampleId));
82 db.writeMergeHeads(Collections.<ObjectId> emptyList());
83 assertEquals(read(new File(db.getDirectory(), "MERGE_HEAD")), "");
84 assertEquals(db.readMergeHeads(), null);
85 fos = new FileOutputStream(new File(db.getDirectory(),
86 "MERGE_HEAD"));
87 try {
88 fos.write(sampleId.getBytes(Constants.CHARACTER_ENCODING));
89 } finally {
90 fos.close();
91 }
92 assertEquals(db.readMergeHeads().size(), 1);
93 assertEquals(db.readMergeHeads().get(0), ObjectId.fromString(sampleId));
94 }
95
96 @Test
97 public void testReadWriteMergeMsg() throws IOException {
98 assertEquals(db.readMergeCommitMsg(), null);
99 assertFalse(new File(db.getDirectory(), "MERGE_MSG").exists());
100 db.writeMergeCommitMsg(mergeMsg);
101 assertEquals(db.readMergeCommitMsg(), mergeMsg);
102 assertEquals(read(new File(db.getDirectory(), "MERGE_MSG")), mergeMsg);
103 db.writeMergeCommitMsg(null);
104 assertEquals(db.readMergeCommitMsg(), null);
105 assertFalse(new File(db.getDirectory(), "MERGE_MSG").exists());
106 FileOutputStream fos = new FileOutputStream(new File(db.getDirectory(),
107 Constants.MERGE_MSG));
108 try {
109 fos.write(mergeMsg.getBytes(Constants.CHARACTER_ENCODING));
110 } finally {
111 fos.close();
112 }
113 assertEquals(db.readMergeCommitMsg(), mergeMsg);
114 }
115
116 }