Package com.google.devtools.moe.client.testing

Source Code of com.google.devtools.moe.client.testing.DummyRepository$DummyRevisionHistory

// Copyright 2011 The MOE Authors All Rights Reserved.

package com.google.devtools.moe.client.testing;

import com.google.common.base.Strings;
import com.google.common.collect.ImmutableList;
import com.google.devtools.moe.client.MoeProblem;
import com.google.devtools.moe.client.codebase.CodebaseCreator;
import com.google.devtools.moe.client.project.RepositoryConfig;
import com.google.devtools.moe.client.repositories.Repository;
import com.google.devtools.moe.client.repositories.Revision;
import com.google.devtools.moe.client.repositories.RevisionGraph;
import com.google.devtools.moe.client.repositories.RevisionHistory;
import com.google.devtools.moe.client.repositories.RevisionMatcher;
import com.google.devtools.moe.client.repositories.RevisionMetadata;
import com.google.devtools.moe.client.writer.WriterCreator;

/**
*
* @author dbentley@google.com (Daniel Bentley)
*/
public class DummyRepository {

  public static class DummyRevisionHistory implements RevisionHistory {
    private String name;

    public DummyRevisionHistory(String name) {
      this.name = name;
    }

    @Override
    public Revision findHighestRevision(String revId) {
      if (Strings.isNullOrEmpty(revId)) {
        revId = "1";
      }
      return new Revision(revId, name);
    }

    @Override
    public RevisionMetadata getMetadata(Revision revision) throws MoeProblem {
      if (!name.equals(revision.repositoryName)) {
        throw new MoeProblem (
            String.format("Could not get metadata: Revision %s is in repository %s instead of %s",
                          revision.revId, revision.repositoryName, name));
      }
      return new RevisionMetadata(revision.revId, "author", "date",
                                  revision.revId.equals("migrated_to") ?
                                  "MOE_MIGRATED_REVID=migrated_from" : "description",
                                  ImmutableList.of(new Revision("parent", name)));
    }

    @Override
    public <T> T findRevisions(Revision revision, RevisionMatcher<T> matcher) {
      if (revision == null) {
        revision = new Revision("migrated_to", name);
      }
      RevisionGraph revTree = RevisionGraph.builder(ImmutableList.of(revision))
          .addRevision(revision, getMetadata(revision))
          .build();
      return matcher.makeResult(revTree, ImmutableList.of(new Revision("1", name)));
    }
  }

  public static Repository makeDummyRepository(String repositoryName, RepositoryConfig config) {
    String projectSpace = null;
    if (config != null) {
      projectSpace = config.getProjectSpace();
    }
    if (projectSpace == null) {
      projectSpace = "public";
    }

    RevisionHistory revisionHistory = new DummyRevisionHistory(repositoryName);

    CodebaseCreator codebaseCreator = new DummyCodebaseCreator(repositoryName, projectSpace);

    WriterCreator writerCreator = new DummyWriterCreator(repositoryName);

    return new Repository(repositoryName, revisionHistory, codebaseCreator, writerCreator);
  }

}
TOP

Related Classes of com.google.devtools.moe.client.testing.DummyRepository$DummyRevisionHistory

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.