Package fitnesse.wiki.fs

Source Code of fitnesse.wiki.fs.VersionsControllerFixture

package fitnesse.wiki.fs;

import fitnesse.ConfigurationParameter;
import fitnesse.wiki.*;
import org.eclipse.jgit.api.InitCommand;
import org.eclipse.jgit.api.errors.GitAPIException;
import util.FileUtil;

import java.io.File;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Properties;

public class VersionsControllerFixture {
  public static final String TEST_DIR = "TestDir";

  private FileSystemPageFactory pageFactory;
  private WikiPage rootPage;
  private WikiPage lastUsedPage;

  public VersionsControllerFixture() {
  }

  public VersionsControllerFixture(String versionsControllerClassName) {
    Properties properties = new Properties();
    properties.setProperty(ConfigurationParameter.VERSIONS_CONTROLLER_CLASS.getKey(), versionsControllerClassName);

    pageFactory = new FileSystemPageFactory(properties);
  }

  public void createWikiRoot() {
    rootPage = pageFactory.makePage(new File(TEST_DIR, "RooT"), "RooT", null);
  }

  public WikiPage getRootPage() {
    return rootPage;
  }

  public void cleanUp() {
    FileUtil.deleteFileSystemDirectory(TEST_DIR);
  }

  public Object savePageWithContent(String pageName, String content) {
    lastUsedPage = WikiPageUtil.addPage(rootPage, PathParser.parse(pageName));
    final PageData data = lastUsedPage.getData();
    data.setContent(content);
    return lastUsedPage.commit(data);
  }

  public void deletePage(String pageName) {
    final PageCrawler pageCrawler = rootPage.getPageCrawler();
    lastUsedPage = pageCrawler.getPage(PathParser.parse(pageName));
    lastUsedPage.getParent().removeChildPage(lastUsedPage.getName());
  }

  public int historySize() {
    Collection<VersionInfo> versions = lastUsedPage.getVersions();
    return versions.size();
  }

  public String getVersionInfos() {
  String result = new String();   
  Collection<VersionInfo> versions = lastUsedPage.getVersions();
  for (VersionInfo version : versions){
    result = result  + version.getName() +"-" + version.getAuthor() + "-" + version.getCreationTime() + "\n";
  }
  return result;
  }

  public String contentForRevision(int n) {
    List<VersionInfo> versions = new ArrayList<VersionInfo>(lastUsedPage.getVersions());
    WikiPage page = lastUsedPage.getVersion(versions.get(versions.size() - 1 - n).getName());
    return page.getData().getContent();
  }

  public String contentForRevisionFromPage(int n, String pageName) {
      final PageCrawler pageCrawler = rootPage.getPageCrawler();
      lastUsedPage = pageCrawler.getPage(PathParser.parse(pageName));
      if (lastUsedPage == null) return "[Error: Page doesn't exists]";
      else return contentForRevision(n);
  }

  public String contentFromPage(String pageName) {
      final PageCrawler pageCrawler = rootPage.getPageCrawler();
      lastUsedPage = pageCrawler.getPage(PathParser.parse(pageName));
      if (lastUsedPage == null) return "[Error: Page doesn't exists]";
      else return lastUsedPage.getData().getContent();
}

  public boolean initialiseGitRepository() throws GitAPIException {
    FileUtil.createDir(TEST_DIR);
    new InitCommand()
            .setDirectory(new File(TEST_DIR))
            .setBare(false)
            .call();
    return true;
  }
}
TOP

Related Classes of fitnesse.wiki.fs.VersionsControllerFixture

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.