view mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/VcsChangeMatcher.java @ 1069:26edd3fdaf8a release-92234

TW-70693 (grafted from 2d8aab94494f39f647e2b56ba9f905d0f70a4f54)
author victory.bedrosova
date Thu, 18 Mar 2021 18:30:34 +0100
parents 7bf4d943d5bb
children
line wrap: on
line source
/*
 * Copyright 2000-2018 JetBrains s.r.o.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package jetbrains.buildServer.buildTriggers.vcs.mercurial;

import jetbrains.buildServer.vcs.VcsChange;
import jetbrains.buildServer.vcs.VcsChangeInfo;
import org.hamcrest.Description;
import org.hamcrest.TypeSafeMatcher;
import org.jetbrains.annotations.NotNull;

public class VcsChangeMatcher extends TypeSafeMatcher<VcsChange> {

  private String myFileName;
  private VcsChangeInfo.Type myType;

  public static VcsChangeMatcher vcsChange() {
    return new VcsChangeMatcher();
  }

  public  VcsChangeMatcher file(@NotNull String fileName) {
    myFileName = fileName;
    return this;
  }

  public VcsChangeMatcher type(@NotNull VcsChangeInfo.Type type) {
    myType = type;
    return this;
  }

  @Override
  public boolean matchesSafely(VcsChange vcsChange) {
    if (myFileName != null && !myFileName.equals(vcsChange.getFileName()))
      return false;
    if (myType != null && !myType.equals(vcsChange.getType()))
      return false;
    return true;
  }

  public void describeTo(Description description) {
    description.appendText("change");
    if (myFileName != null)
      description.appendText(" in file ").appendValue(myFileName);
    if (myType != null)
      description.appendText(" of type ").appendValue(myType);
  }
}