diff options
Diffstat (limited to 'gerrit-server/src/test/java/com/google/gerrit/rules/GerritCommonTest.java')
-rw-r--r-- | gerrit-server/src/test/java/com/google/gerrit/rules/GerritCommonTest.java | 129 |
1 files changed, 88 insertions, 41 deletions
diff --git a/gerrit-server/src/test/java/com/google/gerrit/rules/GerritCommonTest.java b/gerrit-server/src/test/java/com/google/gerrit/rules/GerritCommonTest.java index 9f2ccbf0e0..98b0b4a448 100644 --- a/gerrit-server/src/test/java/com/google/gerrit/rules/GerritCommonTest.java +++ b/gerrit-server/src/test/java/com/google/gerrit/rules/GerritCommonTest.java @@ -14,68 +14,115 @@ package com.google.gerrit.rules; -import com.google.gerrit.common.data.ApprovalType; -import com.google.gerrit.common.data.ApprovalTypes; -import com.google.gerrit.reviewdb.client.ApprovalCategory; -import com.google.gerrit.reviewdb.client.ApprovalCategoryValue; +import com.google.gerrit.common.data.LabelType; +import com.google.gerrit.common.data.LabelTypes; +import com.google.gerrit.common.data.LabelValue; +import com.google.gerrit.reviewdb.client.Account; +import com.google.gerrit.reviewdb.client.AccountGroup; +import com.google.gerrit.reviewdb.client.Branch; +import com.google.gerrit.reviewdb.client.Change; +import com.google.gerrit.reviewdb.client.Project; +import com.google.gerrit.server.config.AllProjectsName; +import com.google.gerrit.server.git.ProjectConfig; +import com.google.gerrit.server.project.ProjectCache; +import com.google.gerrit.server.project.ProjectState; import com.google.inject.AbstractModule; -import java.util.ArrayList; import java.util.Arrays; -import java.util.List; +import java.util.Set; public class GerritCommonTest extends PrologTestCase { + private Projects projects; + @Override public void setUp() throws Exception { super.setUp(); - - final ApprovalTypes types = new ApprovalTypes(Arrays.asList( - codeReviewCategory(), - verifiedCategory() - )); - + projects = new Projects(new LabelTypes(Arrays.asList( + category("Code-Review", + value(2, "Looks good to me, approved"), + value(1, "Looks good to me, but someone else must approve"), + value(0, "No score"), + value(-1, "I would prefer that you didn't submit this"), + value(-2, "Do not submit")), + category("Verified", value(1, "Verified"), + value(0, "No score"), value(-1, "Fails"))))); load("gerrit", "gerrit_common_test.pl", new AbstractModule() { @Override protected void configure() { - bind(ApprovalTypes.class).toInstance(types); + bind(ProjectCache.class).toInstance(projects); } }); } - private static ApprovalType codeReviewCategory() { - ApprovalCategory cat = category(0, "CRVW", "Code Review"); - List<ApprovalCategoryValue> vals = newList(); - vals.add(value(cat, 2, "Looks good to me, approved")); - vals.add(value(cat, 1, "Looks good to me, but someone else must approve")); - vals.add(value(cat, 0, "No score")); - vals.add(value(cat, -1, "I would prefer that you didn't submit this")); - vals.add(value(cat, -2, "Do not submit")); - return new ApprovalType(cat, vals); + @Override + protected void setUpEnvironment(PrologEnvironment env) { + env.set(StoredValues.CHANGE, new Change( + new Change.Key("Ibeef"), new Change.Id(1), new Account.Id(2), + new Branch.NameKey(projects.allProjectsName, "master"))); } - private static ApprovalType verifiedCategory() { - ApprovalCategory cat = category(1, "VRIF", "Verified"); - List<ApprovalCategoryValue> vals = newList(); - vals.add(value(cat, 1, "Verified")); - vals.add(value(cat, 0, "No score")); - vals.add(value(cat, -1, "Fails")); - return new ApprovalType(cat, vals); + private static LabelValue value(int value, String text) { + return new LabelValue((short) value, text); } - private static ApprovalCategory category(int pos, String id, String name) { - ApprovalCategory cat; - cat = new ApprovalCategory(new ApprovalCategory.Id(id), name); - cat.setPosition((short) pos); - return cat; + private static LabelType category(String name, LabelValue... values) { + return new LabelType(name, Arrays.asList(values)); } - private static ArrayList<ApprovalCategoryValue> newList() { - return new ArrayList<ApprovalCategoryValue>(); - } + private static class Projects implements ProjectCache { + private final AllProjectsName allProjectsName; + private final ProjectState allProjects; + + private Projects(LabelTypes labelTypes) { + allProjectsName = new AllProjectsName("All-Projects"); + ProjectConfig config = new ProjectConfig(allProjectsName); + config.createInMemory(); + for (LabelType label : labelTypes.getLabelTypes()) { + config.getLabelSections().put(label.getName(), label); + } + allProjects = new ProjectState(this, allProjectsName, null, + null, null, null, config); + } + + @Override + public ProjectState getAllProjects() { + throw new UnsupportedOperationException(); + } + + @Override + public ProjectState get(Project.NameKey projectName) { + assertEquals(allProjectsName, projectName); + return allProjects; + } + + @Override + public void evict(Project p) { + throw new UnsupportedOperationException(); + } + + @Override + public void remove(Project p) { + throw new UnsupportedOperationException(); + } + + @Override + public Iterable<Project.NameKey> all() { + throw new UnsupportedOperationException(); + } + + @Override + public Set<AccountGroup.UUID> guessRelevantGroupUUIDs() { + throw new UnsupportedOperationException(); + } + + @Override + public Iterable<Project.NameKey> byName(String prefix) { + throw new UnsupportedOperationException(); + } - private static ApprovalCategoryValue value(ApprovalCategory c, int v, String n) { - return new ApprovalCategoryValue( - new ApprovalCategoryValue.Id(c.getId(), (short) v), - n); + @Override + public void onCreateProject(Project.NameKey newProjectName) { + throw new UnsupportedOperationException(); + } } } |