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 package com.aragost.javahg.commands;
27
28 import java.io.File;
29 import java.io.IOException;
30 import java.util.List;
31
32 import org.junit.Assert;
33 import org.junit.Test;
34
35 import com.aragost.javahg.Repository;
36 import com.aragost.javahg.test.AbstractTestCase;
37
38 public class RemoveCommandTest extends AbstractTestCase {
39
40 @Test
41 public void test() throws IOException {
42 Repository repo = getTestRepository();
43 writeFile("a", "");
44 new File(repo.getDirectory(), "dir").mkdir();
45 writeFile("dir/a", "");
46 writeFile("dir/b", "");
47 commit();
48
49 List<File> removed = RemoveCommand.on(repo).execute(new File("dir"));
50 Assert.assertEquals(2, removed.size());
51 Assert.assertEquals(repoFile(repo, "dir", "a"), removed.get(0));
52 Assert.assertEquals(repoFile(repo, "dir", "b"), removed.get(1));
53 }
54
55 @Test
56 public void testWithNoFiles() throws IOException {
57 Repository repo = getTestRepository();
58 RemoveCommand cmd = RemoveCommand.on(repo);
59 try {
60 cmd.execute();
61 assertFailedExecution(cmd);
62 } catch (ExecutionException e) {
63 Assert.assertSame(cmd, e.getCommand());
64 Assert.assertEquals(-1, cmd.getReturnCode());
65 Assert.assertEquals("abort: no files specified\n", cmd.getErrorString());
66 }
67 }
68
69 @Test
70 public void testUntracked() throws IOException {
71 Repository repo = getTestRepository();
72 writeFile("a", "");
73
74 RemoveCommand cmd = RemoveCommand.on(repo);
75 cmd.execute("a");
76 Assert.assertEquals("not removing a: file is untracked\n", cmd.getErrorString());
77 }
78
79 @Test
80 public void testNoSuchFile() throws IOException {
81 Repository repo = getTestRepository();
82
83 RemoveCommand cmd = RemoveCommand.on(repo);
84 cmd.execute("a");
85 Assert.assertEquals("a: " + getMissingFileErrorText() + "\n", cmd.getErrorString());
86 }
87
88 @Test
89 public void testMixedSuccess() throws IOException {
90 Repository repo = getTestRepository();
91 writeFile("a", "");
92 commit();
93
94 RemoveCommand cmd = RemoveCommand.on(repo);
95 List<File> result = cmd.execute(new File("a"), new File("b"));
96 Assert.assertEquals(1, result.size());
97 Assert.assertEquals(repoFile(repo, "a"), result.get(0));
98 Assert.assertEquals("b: " + getMissingFileErrorText() + "\n", cmd.getErrorString());
99 }
100
101 }