Mercurial > hg > mercurial
view mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/ListFilesSupportTest.java @ 915:6b5e83970a26 Hajipur-9.0.x
Fix test: test repository requires a more recent mercurial
author | Dmitry Neverov <dmitry.neverov@jetbrains.com> |
---|---|
date | Fri, 02 Jan 2015 12:36:52 +0100 |
parents | 31a1aca3305c |
children | 7bf4d943d5bb |
line wrap: on
line source
/* * Copyright 2000-2014 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package jetbrains.buildServer.buildTriggers.vcs.mercurial; import jetbrains.buildServer.util.TestFor; import jetbrains.buildServer.vcs.ListDirectChildrenPolicy; import jetbrains.buildServer.vcs.VcsException; import jetbrains.buildServer.vcs.VcsFileData; import jetbrains.buildServer.vcs.VcsRoot; import org.jetbrains.annotations.NotNull; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; import java.io.File; import java.io.IOException; import java.util.Collection; import static jetbrains.buildServer.buildTriggers.vcs.mercurial.MercurialSupportBuilder.mercurialSupport; import static jetbrains.buildServer.buildTriggers.vcs.mercurial.Util.copyRepository; import static jetbrains.buildServer.buildTriggers.vcs.mercurial.VcsRootBuilder.vcsRoot; import static org.testng.AssertJUnit.assertFalse; import static org.testng.AssertJUnit.assertNotNull; import static org.testng.AssertJUnit.assertTrue; /** * @author dmitry.neverov */ @Test public class ListFilesSupportTest extends BaseMercurialTestCase { private MercurialVcsSupport myVcs; private VcsRoot myRoot; private File myRemoteRepoDir; @BeforeMethod public void setUp() throws Exception { super.setUp(); ServerPluginConfig myPluginConfig = new ServerPluginConfigBuilder() .cachesDir(myTempFiles.createTempDir()) .build(); myVcs = mercurialSupport().withConfig(myPluginConfig).build(); myRemoteRepoDir = myTempFiles.createTempDir(); copyRepository(new File("mercurial-tests/testData/rep1"), myRemoteRepoDir); myRoot = vcsRoot().withUrl(myRemoteRepoDir.getAbsolutePath()).build(); } public void should_support_list_files() throws Exception { assertNotNull(myVcs.getListFilesPolicy()); } public void list_root_dir() throws Exception { ListDirectChildrenPolicy policy = getListFilesPolicy(); Collection<VcsFileData> files = policy.listFiles(myRoot, ""); assertTrue(files.contains(dir("dir1"))); assertTrue(files.contains(dir("dir with space"))); assertTrue(files.contains(file("file.txt"))); } public void list_subdir() throws Exception { ListDirectChildrenPolicy policy = getListFilesPolicy(); Collection<VcsFileData> files = policy.listFiles(myRoot, "dir1"); assertTrue(files.contains(file("file1.txt"))); assertTrue(files.contains(file("file3.txt"))); assertTrue(files.contains(dir("subdir"))); files = policy.listFiles(myRoot, "dir1/subdir/"); assertTrue(files.contains(file("file2.txt"))); } @TestFor(issues = "TW-23435") public void should_take_branch_into_account() throws VcsException, IOException { ListDirectChildrenPolicy policy = getListFilesPolicy(); VcsRoot differentBranchRoot = vcsRoot().withUrl(myRemoteRepoDir.getAbsolutePath()).withBranch("test_branch").build(); Collection<VcsFileData> files1 = policy.listFiles(myRoot, ""); Collection<VcsFileData> files2 = policy.listFiles(differentBranchRoot, ""); assertFalse("List files doesn't take branch into account", files1.equals(files2)); } @NotNull private ListDirectChildrenPolicy getListFilesPolicy() { ListDirectChildrenPolicy listFilesPolicy = (ListDirectChildrenPolicy) myVcs.getListFilesPolicy(); assert listFilesPolicy != null; return listFilesPolicy; } private VcsFileData dir(@NotNull String path) { return new VcsFileData(path, true); } private VcsFileData file(@NotNull String path) { return new VcsFileData(path, false); } }