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 * See LICENSE for the full license text, also available.
7 *******************************************************************************/
8 package org
.spearce
.egit
.core
;
11 import java
.io
.FileWriter
;
12 import java
.io
.IOException
;
13 import java
.util
.Collections
;
16 import org
.eclipse
.core
.resources
.IFile
;
17 import org
.eclipse
.core
.resources
.IWorkspaceRoot
;
18 import org
.spearce
.egit
.core
.op
.ConnectProviderOperation
;
19 import org
.spearce
.egit
.core
.project
.RepositoryMapping
;
20 import org
.spearce
.egit
.core
.test
.GitTestCase
;
21 import org
.spearce
.jgit
.lib
.Repository
;
22 import org
.spearce
.jgit
.treewalk
.TreeWalk
;
23 import org
.spearce
.jgit
.treewalk
.WorkingTreeIterator
;
24 import org
.spearce
.jgit
.treewalk
.filter
.PathFilterGroup
;
26 public class T0003_AdaptableFileTreeIteratorTest
extends GitTestCase
{
28 private Repository repository
;
30 private File repositoryRoot
;
34 protected void setUp() throws Exception
{
37 repository
= new Repository(gitDir
);
38 repositoryRoot
= repository
.getWorkDir();
41 file
= new File(project
.getProject().getLocation().toFile(), "a.txt");
42 final FileWriter fileWriter
= new FileWriter(file
);
43 fileWriter
.write("aaaaaaaaaaa");
46 final ConnectProviderOperation operation
= new ConnectProviderOperation(
47 project
.getProject());
51 public void testFileTreeToContainerAdaptation() throws IOException
{
52 final IWorkspaceRoot root
= project
.getProject().getWorkspace()
55 final TreeWalk treeWalk
= new TreeWalk(repository
);
56 treeWalk
.addTree(new AdaptableFileTreeIterator(repositoryRoot
, root
));
57 treeWalk
.setRecursive(true);
59 final IFile eclipseFile
= project
.getProject().getFile(file
.getName());
60 final RepositoryMapping mapping
= RepositoryMapping
61 .getMapping(eclipseFile
);
62 final Set
<String
> repositoryPaths
= Collections
.singleton(mapping
63 .getRepoRelativePath(eclipseFile
));
65 assertTrue(repositoryPaths
.size() == 1);
66 treeWalk
.setFilter(PathFilterGroup
.createFromStrings(repositoryPaths
));
68 assertTrue(treeWalk
.next());
70 final WorkingTreeIterator iterator
= treeWalk
.getTree(1,
71 WorkingTreeIterator
.class);
72 assertTrue(iterator
instanceof ContainerTreeIterator
);