841cc7de22c73f39d991befab2dfef03fe7de21e
[idea/community.git] / plugins / hg4idea / testSrc / org / zmlx / hg4idea / test / HgMoveTestCase.java
1 // Copyright 2008-2010 Victor Iacoban
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 //
7 // http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software distributed under
10 // the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
11 // either express or implied. See the License for the specific language governing permissions and
12 // limitations under the License.
13 package org.zmlx.hg4idea.test;
14
15 import com.intellij.openapi.vfs.VirtualFile;
16 import org.testng.annotations.Test;
17
18 import java.io.File;
19
20 public class HgMoveTestCase extends AbstractHgTestCase {
21
22   @Test
23   public void testMoveNewFile() throws Exception {
24     VirtualFile parent1 = createDirInCommand(myWorkingCopyDir, "com");
25     VirtualFile file = createFileInCommand(parent1, "a.txt", "new file content");
26
27     VirtualFile parent2 = createDirInCommand(myWorkingCopyDir, "org");
28     moveFileInCommand(file, parent2);
29
30     verify(runHgOnProjectRepo("status"), added("org", "a.txt"));
31   }
32
33   @Test
34   public void testMoveUnchangedFile() throws Exception {
35     VirtualFile parent1 = createDirInCommand(myWorkingCopyDir, "com");
36     VirtualFile file = createFileInCommand(parent1, "a.txt", "new file content");
37     runHgOnProjectRepo("commit", "-m", "added file");
38
39     VirtualFile parent2 = createDirInCommand(myWorkingCopyDir, "org");
40     moveFileInCommand(file, parent2);
41
42     verify(runHgOnProjectRepo("status"), added("org", "a.txt"), removed("com", "a.txt"));
43   }
44
45   @Test
46   public void testMoveFilesUnderFolder() throws Exception {
47     VirtualFile parent1 = createDirInCommand(myWorkingCopyDir, "com");
48     VirtualFile dir = createDirInCommand(parent1, "zzz");
49     createFileInCommand(dir, "a.txt", "new file content");
50     runHgOnProjectRepo("commit", "-m", "added file");
51
52     VirtualFile parent2 = createDirInCommand(myWorkingCopyDir, "org");
53     moveFileInCommand(dir, parent2);
54
55     verify(runHgOnProjectRepo("status"), added("org", "zzz", "a.txt"), removed("com", "zzz", "a.txt"));
56   }
57
58   @Test
59   public void testMoveUnversionedFile() throws Exception {
60     VirtualFile parent1 = createDirInCommand(myWorkingCopyDir, "com");
61
62     File unversionedFile = new File(parent1.getPath(), "a.txt");
63     VirtualFile file = makeFile(unversionedFile);
64
65     verify(runHgOnProjectRepo("status"), unknown("com", "a.txt"));
66
67     VirtualFile parent2 = createDirInCommand(myWorkingCopyDir, "org");
68     moveFileInCommand(file, parent2);
69
70     verify(runHgOnProjectRepo("status"), unknown("org", "a.txt"));
71   }
72
73 }