chromium/components/cronet/android/fake/java/org/chromium/net/test/ResponseMatcher.java

// Copyright 2019 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

package org.chromium.net.test;

import androidx.annotation.Nullable;

import org.chromium.net.UrlRequest;

import java.util.List;
import java.util.Map;

/** An interface for matching {@link UrlRequest}s to {@link FakeUrlResponse}s. */
public interface ResponseMatcher {
    /**
     * Optionally gets a response based on the request parameters.
     *
     * @param url the URL the {@link UrlRequest} is connecting to
     * @param httpMethod the HTTP method the {@link UrlRequest} is connecting with
     * @param headers the {@link UrlRequest} headers
     * @param body the body of the request
     * @return a {@link FakeUrlResponse} if there is a matching response, or {@code null} otherwise
     */
    @Nullable
    FakeUrlResponse getMatchingResponse(
            String url, String httpMethod, List<Map.Entry<String, String>> headers, byte[] body);
}