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