1 /*
2 * #%L
3 * JavaHg
4 * %%
5 * Copyright (C) 2011 aragost Trifork ag
6 * %%
7 * Permission is hereby granted, free of charge, to any person obtaining a copy
8 * of this software and associated documentation files (the "Software"), to deal
9 * in the Software without restriction, including without limitation the rights
10 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11 * copies of the Software, and to permit persons to whom the Software is
12 * furnished to do so, subject to the following conditions:
13 *
14 * The above copyright notice and this permission notice shall be included in
15 * all copies or substantial portions of the Software.
16 *
17 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
23 * THE SOFTWARE.
24 * #L%
25 */
26 package com.aragost.javahg.commands;
27
28 import java.io.IOException;
29
30 import org.junit.Assert;
31 import org.junit.Test;
32
33 import com.aragost.javahg.Repository;
34 import com.aragost.javahg.test.AbstractTestCase;
35
36 public class DiffCommandTest extends AbstractTestCase {
37
38 @Test
39 public void testNoFiles() throws IOException {
40 Repository repo = getTestRepository();
41 writeFile("x", "abc\n");
42 AddCommand.on(repo).execute();
43
44 // @formatter:off
45 String expected = ""
46 + "diff --git a/x b/x\n"
47 + "new file mode 100644\n"
48 + "--- /dev/null\n"
49 + "+++ b/x\n"
50 + "@@ -0,0 +1,1 @@\n"
51 + "+abc\n";
52 // @formatter:on
53
54 String patch = DiffCommand.on(repo).nodates().execute();
55 Assert.assertEquals(expected, patch);
56 }
57
58 @Test
59 public void testSingleFile() throws IOException {
60 Repository repo = getTestRepository();
61
62 writeFile("x", "abc\n");
63 AddCommand.on(repo).execute();
64
65 // @formatter:off
66 String expected = ""
67 + "diff --git a/x b/x\n"
68 + "new file mode 100644\n"
69 + "--- /dev/null\n"
70 + "+++ b/x\n"
71 + "@@ -0,0 +1,1 @@\n"
72 + "+abc\n";
73 // @formatter:on
74
75 String patch = DiffCommand.on(repo).nodates().execute("x");
76 Assert.assertEquals(expected, patch);
77 }
78
79 @Test
80 public void testDiffstat() throws IOException {
81 Repository repo = getTestRepository();
82 writeFile("x", "abc\n");
83 AddCommand.on(repo).execute();
84
85 // @formatter:off
86 String expected = ""
87 + " x | 1 +\n"
88 + " 1 files changed, 1 insertions(+), 0 deletions(-)\n";
89 // @formatter:on
90
91 String patch = DiffCommand.on(repo).stat().execute();
92 Assert.assertEquals(expected, patch);
93 }
94
95 }