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
73 try (FileOutputStream fos = new FileOutputStream(
74 new File(db.getDirectory(), "MERGE_HEAD"));) {
75 fos.write("0000000000000000000000000000000000000000\n1c6db447abdbb291b25f07be38ea0b1bf94947c5\n".getBytes(Constants.CHARACTER_ENCODING));
76 }
77 assertEquals(db.readMergeHeads().size(), 2);
78 assertEquals(db.readMergeHeads().get(0), ObjectId.zeroId());
79 assertEquals(db.readMergeHeads().get(1), ObjectId.fromString(sampleId));
80 db.writeMergeHeads(Collections.<ObjectId> emptyList());
81 assertEquals(read(new File(db.getDirectory(), "MERGE_HEAD")), "");
82 assertEquals(db.readMergeHeads(), null);
83 try (FileOutputStream fos = new FileOutputStream(
84 new File(db.getDirectory(), "MERGE_HEAD"))) {
85 fos.write(sampleId.getBytes(Constants.CHARACTER_ENCODING));
86 }
87 assertEquals(db.readMergeHeads().size(), 1);
88 assertEquals(db.readMergeHeads().get(0), ObjectId.fromString(sampleId));
89 }
90
91 @Test
92 public void testReadWriteMergeMsg() throws IOException {
93 assertEquals(db.readMergeCommitMsg(), null);
94 assertFalse(new File(db.getDirectory(), "MERGE_MSG").exists());
95 db.writeMergeCommitMsg(mergeMsg);
96 assertEquals(db.readMergeCommitMsg(), mergeMsg);
97 assertEquals(read(new File(db.getDirectory(), "MERGE_MSG")), mergeMsg);
98 db.writeMergeCommitMsg(null);
99 assertEquals(db.readMergeCommitMsg(), null);
100 assertFalse(new File(db.getDirectory(), "MERGE_MSG").exists());
101 try (FileOutputStream fos = new FileOutputStream(
102 new File(db.getDirectory(), Constants.MERGE_MSG))) {
103 fos.write(mergeMsg.getBytes(Constants.CHARACTER_ENCODING));
104 }
105 assertEquals(db.readMergeCommitMsg(), mergeMsg);
106 }
107
108 }