[Mercurial Tests] Renamed AbstractHgTestCase to HgAbstractTestCase for unification.
[idea/community.git] / plugins / hg4idea / testSrc / org / zmlx / hg4idea / test / HgCopyTestCase.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 HgCopyTestCase extends HgAbstractTestCase {
21
22   @Test
23   public void testCopyUnmodifiedFile() throws Exception {
24     VirtualFile file = createFileInCommand("a.txt", "new file content");
25     runHgOnProjectRepo("commit", "-m", "added file");
26     copyFileInCommand(file, "b.txt");
27     verify(runHgOnProjectRepo("status"), added("b.txt"));
28   }
29
30   @Test
31   public void testCopyModifiedFile() throws Exception {
32     VirtualFile file = createFileInCommand("a.txt", "new file content");
33     runHgOnProjectRepo("commit", "-m", "added file");
34     editFileInCommand(myProject, file, "newer content");
35     verify(runHgOnProjectRepo("status"), modified("a.txt"));
36     copyFileInCommand(file, "b.txt");
37     verify(runHgOnProjectRepo("status"), modified("a.txt"), added("b.txt"));
38   }
39
40   @Test
41   public void testCopyUnversionedFile() throws Exception {
42     VirtualFile file = makeFile(new File(myWorkingCopyDir.getPath(), "a.txt"));
43     copyFileInCommand(file, "b.txt");
44     verify(runHgOnProjectRepo("status"), unknown("a.txt"), unknown("b.txt"));
45   }
46
47   @Test
48   public void testCopyCopiedFile() throws Exception {
49     VirtualFile file = createFileInCommand("a.txt", "new file content");
50     runHgOnProjectRepo("commit", "-m", "added file");
51     copyFileInCommand(file, "b.txt");
52     copyFileInCommand(file, "c.txt");
53     verify(runHgOnProjectRepo("status"), added("b.txt"), added("c.txt"));
54   }
55
56   @Test
57   public void testCopyDirWithFiles() throws Exception {
58     VirtualFile parent = createDirInCommand(myWorkingCopyDir, "com");
59     createFileInCommand(parent, "a.txt", "new file content");
60     runHgOnProjectRepo("commit", "-m", "added file");
61     copyFileInCommand(parent, "org");
62     verify(runHgOnProjectRepo("status"), added("org", "a.txt"));
63   }
64
65 }