package com.smartcodeltd.jenkinsci.plugins.build_monitor.matchers;
import com.smartcodeltd.jenkinsci.plugins.build_monitor.model.ProjectInformation;
import com.smartcodeltd.jenkinsci.plugins.build_monitor.model.ProjectStatus;
import org.hamcrest.Description;
import org.hamcrest.TypeSafeMatcher;
import static java.lang.String.format;
public class ProjectInformationMatchers {
public static ProjectStatusMatcher displaysProjectStatusAs(ProjectStatus desiredStatus) {
return new ProjectStatusMatcher(desiredStatus);
}
public static class ProjectStatusMatcher extends TypeSafeMatcher<ProjectInformation> {
private final ProjectStatus desiredStatus;
public ProjectStatusMatcher(ProjectStatus desiredStatus) {
this.desiredStatus = desiredStatus;
}
@Override
protected boolean matchesSafely(ProjectInformation information) {
return information.status().contains(desiredStatus);
}
@Override
public void describeTo(Description description) {
description
.appendText("displaying the status as ")
.appendText(format("'%s'", desiredStatus.toString()));
}
}
}