1 /*******************************************************************************
2 * Copyright (C) 2009, Tor Arne Vestbø <torarnv@gmail.com>
4 * All rights reserved. This program and the accompanying materials
5 * are made available under the terms of the Eclipse Public License v1.0
6 * which accompanies this distribution, and is available at
7 * http://www.eclipse.org/legal/epl-v10.html
8 *******************************************************************************/
9 package org
.eclipse
.egit
.core
;
12 import java
.io
.FileWriter
;
13 import java
.io
.IOException
;
14 import java
.util
.Collections
;
17 import org
.eclipse
.core
.resources
.IFile
;
18 import org
.eclipse
.core
.resources
.IWorkspaceRoot
;
19 import org
.eclipse
.egit
.core
.AdaptableFileTreeIterator
;
20 import org
.eclipse
.egit
.core
.ContainerTreeIterator
;
21 import org
.eclipse
.egit
.core
.op
.ConnectProviderOperation
;
22 import org
.eclipse
.egit
.core
.project
.RepositoryMapping
;
23 import org
.eclipse
.egit
.core
.test
.GitTestCase
;
24 import org
.eclipse
.jgit
.lib
.Repository
;
25 import org
.eclipse
.jgit
.treewalk
.TreeWalk
;
26 import org
.eclipse
.jgit
.treewalk
.WorkingTreeIterator
;
27 import org
.eclipse
.jgit
.treewalk
.filter
.PathFilterGroup
;
29 public class T0003_AdaptableFileTreeIteratorTest
extends GitTestCase
{
31 private Repository repository
;
33 private File repositoryRoot
;
37 protected void setUp() throws Exception
{
40 repository
= new Repository(gitDir
);
41 repositoryRoot
= repository
.getWorkDir();
44 file
= new File(project
.getProject().getLocation().toFile(), "a.txt");
45 final FileWriter fileWriter
= new FileWriter(file
);
46 fileWriter
.write("aaaaaaaaaaa");
49 final ConnectProviderOperation operation
= new ConnectProviderOperation(
50 project
.getProject());
54 public void testFileTreeToContainerAdaptation() throws IOException
{
55 final IWorkspaceRoot root
= project
.getProject().getWorkspace()
58 final TreeWalk treeWalk
= new TreeWalk(repository
);
59 treeWalk
.addTree(new AdaptableFileTreeIterator(repositoryRoot
, root
));
60 treeWalk
.setRecursive(true);
62 final IFile eclipseFile
= project
.getProject().getFile(file
.getName());
63 final RepositoryMapping mapping
= RepositoryMapping
64 .getMapping(eclipseFile
);
65 final Set
<String
> repositoryPaths
= Collections
.singleton(mapping
66 .getRepoRelativePath(eclipseFile
));
68 assertTrue(repositoryPaths
.size() == 1);
69 treeWalk
.setFilter(PathFilterGroup
.createFromStrings(repositoryPaths
));
71 assertTrue(treeWalk
.next());
73 final WorkingTreeIterator iterator
= treeWalk
.getTree(1,
74 WorkingTreeIterator
.class);
75 assertTrue(iterator
instanceof ContainerTreeIterator
);