Multi-project connect to Git provider
[egit/imyousuf.git] / org.spearce.egit.core.test / src / org / spearce / egit / core / T0003_AdaptableFileTreeIteratorTest.java
blob63e0798f31ccf0ad51fef62e860dc740a45bf9df
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;
10 import java.io.File;
11 import java.io.FileWriter;
12 import java.io.IOException;
13 import java.util.Collections;
14 import java.util.Set;
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;
32 private File file;
34 protected void setUp() throws Exception {
35 super.setUp();
37 repository = new Repository(gitDir);
38 repositoryRoot = repository.getWorkDir();
39 repository.create();
41 file = new File(project.getProject().getLocation().toFile(), "a.txt");
42 final FileWriter fileWriter = new FileWriter(file);
43 fileWriter.write("aaaaaaaaaaa");
44 fileWriter.close();
46 final ConnectProviderOperation operation = new ConnectProviderOperation(
47 project.getProject());
48 operation.run(null);
51 public void testFileTreeToContainerAdaptation() throws IOException {
52 final IWorkspaceRoot root = project.getProject().getWorkspace()
53 .getRoot();
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);