All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.atlassian.jira.rest.client.test.matchers.SearchResultMatchers Maven / Gradle / Ivy

The newest version!
/*
 * Copyright (C) 2012 Atlassian
 *
 * 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 com.atlassian.jira.rest.client.test.matchers;

import com.atlassian.jira.rest.client.api.domain.Issue;
import com.atlassian.jira.rest.client.api.domain.SearchResult;
import com.google.common.collect.Iterables;
import org.hamcrest.FeatureMatcher;
import org.hamcrest.Matcher;
import org.hamcrest.Matchers;

public class SearchResultMatchers {
	public static Matcher withStartIndex(final int startIndex) {
		return new FeatureMatcher(Matchers.is(startIndex),
				"search result with start index that", "startIndex") {

			@Override
			protected Integer featureValueOf(SearchResult searchResult) {
				return searchResult.getStartIndex();
			}
		};
	}

	public static Matcher withMaxResults(final int maxResults) {
		return new FeatureMatcher(Matchers.is(maxResults),
				"search result with max results that", "maxResults") {

			@Override
			protected Integer featureValueOf(SearchResult searchResult) {
				return searchResult.getMaxResults();
			}
		};
	}

	public static Matcher withTotal(final int total) {
		return new FeatureMatcher(Matchers.is(total),
				"search result with total that", "total") {

			@Override
			protected Integer featureValueOf(SearchResult searchResult) {
				return searchResult.getTotal();
			}
		};
	}

	public static Matcher withIssueCount(final int issueCount) {
		return new FeatureMatcher(Matchers.is(issueCount),
				"search result with issue count that", "issue count") {

			@Override
			protected Integer featureValueOf(SearchResult searchResult) {
				final Iterable issues = searchResult.getIssues();
				return (issues == null) ? 0 : Iterables.size(issues);
			}
		};
	}

	public static Matcher searchResultWithParamsAndIssueCount(final int startIndex, final int maxResults,
			final int total, final int issueCount) {
		return Matchers.allOf(withStartIndex(startIndex), withMaxResults(maxResults), withTotal(total),
				withIssueCount(issueCount));
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy