Mercurial > hg > mercurial
changeset 543:a157a25fd3af
extract matcher
author | Dmitry Neverov <dmitry.neverov@jetbrains.com> |
---|---|
date | Wed, 06 Feb 2013 19:23:46 +0400 |
parents | 0f06e0e10540 |
children | 4ff88460fb5d |
files | mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialVcsSupportTest.java mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/ModificationDataMatcher.java |
diffstat | 2 files changed, 61 insertions(+), 35 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialVcsSupportTest.java Wed Feb 06 17:03:41 2013 +0400 +++ b/mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialVcsSupportTest.java Wed Feb 06 19:23:46 2013 +0400 @@ -34,6 +34,7 @@ import static com.intellij.openapi.util.io.FileUtil.*; import static jetbrains.buildServer.buildTriggers.vcs.mercurial.MercurialSupportBuilder.mercurialSupport; +import static jetbrains.buildServer.buildTriggers.vcs.mercurial.ModificationDataMatcher.modificationData; import static jetbrains.buildServer.buildTriggers.vcs.mercurial.Util.buildPatch; import static jetbrains.buildServer.buildTriggers.vcs.mercurial.Util.copyRepository; import static jetbrains.buildServer.buildTriggers.vcs.mercurial.VcsRootBuilder.vcsRoot; @@ -567,10 +568,10 @@ RepositoryStateData.createVersionState("default", map("default", "505c5b9d01e6", "personal-branch", "96b78d73081d")), CheckoutRules.DEFAULT); assertEquals(changes.size(), 4); - assertThat(changes, hasItem(withVersion("dec47d2d49bf"))); - assertThat(changes, hasItem(withVersion("78e67807f916"))); - assertThat(changes, hasItem(withVersion("96b78d73081d"))); - assertThat(changes, hasItem(withVersion("505c5b9d01e6"))); + assertThat(changes, hasItem(modificationData().withVersion("dec47d2d49bf"))); + assertThat(changes, hasItem(modificationData().withVersion("78e67807f916"))); + assertThat(changes, hasItem(modificationData().withVersion("96b78d73081d"))); + assertThat(changes, hasItem(modificationData().withVersion("505c5b9d01e6"))); } @@ -581,37 +582,14 @@ RepositoryStateData.createVersionState("default", map("default", "505c5b9d01e6", "personal-branch", "9ec402c74298")), CheckoutRules.DEFAULT); assertEquals(changes.size(), 8); - assertThat(changes, hasItem(withVersion("9ec402c74298"))); - assertThat(changes, hasItem(withVersion("505c5b9d01e6"))); - assertThat(changes, hasItem(withVersion("96b78d73081d"))); - assertThat(changes, hasItem(withVersion("78e67807f916"))); - assertThat(changes, hasItem(withVersion("dec47d2d49bf"))); - assertThat(changes, hasItem(withVersion("1e620196c4b6"))); - assertThat(changes, hasItem(withVersion("48177654181c"))); - assertThat(changes, hasItem(withVersion("fc524efc2bc4"))); - } - - - private ModificationDataVersionMatcher withVersion(@NotNull String version) { - return new ModificationDataVersionMatcher(version); - } - - class ModificationDataVersionMatcher extends TypeSafeMatcher<ModificationData> { - - private final String myVersion; - - public ModificationDataVersionMatcher(@NotNull String version) { - myVersion = version; - } - - @Override - public boolean matchesSafely(ModificationData m) { - return myVersion.equals(m.getVersion()); - } - - public void describeTo(Description description) { - description.appendText("modification with version").appendValue(myVersion); - } + assertThat(changes, hasItem(modificationData().withVersion("9ec402c74298"))); + assertThat(changes, hasItem(modificationData().withVersion("505c5b9d01e6"))); + assertThat(changes, hasItem(modificationData().withVersion("96b78d73081d"))); + assertThat(changes, hasItem(modificationData().withVersion("78e67807f916"))); + assertThat(changes, hasItem(modificationData().withVersion("dec47d2d49bf"))); + assertThat(changes, hasItem(modificationData().withVersion("1e620196c4b6"))); + assertThat(changes, hasItem(modificationData().withVersion("48177654181c"))); + assertThat(changes, hasItem(modificationData().withVersion("fc524efc2bc4"))); }
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/ModificationDataMatcher.java Wed Feb 06 19:23:46 2013 +0400 @@ -0,0 +1,48 @@ +package jetbrains.buildServer.buildTriggers.vcs.mercurial; + +import jetbrains.buildServer.vcs.ModificationData; +import org.hamcrest.Description; +import org.hamcrest.TypeSafeMatcher; +import org.jetbrains.annotations.NotNull; + +import java.util.HashMap; +import java.util.Map; + +import static jetbrains.buildServer.util.Util.map; + +public class ModificationDataMatcher extends TypeSafeMatcher<ModificationData> { + + private String myVersion; + private Map<String, String> myVcsRootProperties = new HashMap<String, String>(); + + @Override + public boolean matchesSafely(ModificationData m) { + if (myVersion != null && !myVersion.equals(m.getDisplayVersion())) + return false; + if (!myVcsRootProperties.isEmpty() && !myVcsRootProperties.equals(m.getVcsRootObject().getProperties())) + return false; + return true; + } + + public void describeTo(Description description) { + description.appendText("modification"); + if (myVersion != null) + description.appendText(" with version ").appendValue(myVersion); + if (!myVcsRootProperties.isEmpty()) + description.appendText(" with vcs root properties ").appendValue(myVcsRootProperties); + } + + public static ModificationDataMatcher modificationData() { + return new ModificationDataMatcher(); + } + + public ModificationDataMatcher withVersion(@NotNull String version) { + myVersion = version; + return this; + } + + public ModificationDataMatcher withVcsRootProperties(Map<String, String> properties) { + myVcsRootProperties.putAll(properties); + return this; + } +}