1e5468b6b0242c072d0b7eea7e6c75a536cb650dfAmit Mahajan/*
2e5468b6b0242c072d0b7eea7e6c75a536cb650dfAmit Mahajan * Copyright (C) 2015 The Android Open Source Project
3e5468b6b0242c072d0b7eea7e6c75a536cb650dfAmit Mahajan *
4e5468b6b0242c072d0b7eea7e6c75a536cb650dfAmit Mahajan * Licensed under the Apache License, Version 2.0 (the "License");
5e5468b6b0242c072d0b7eea7e6c75a536cb650dfAmit Mahajan * you may not use this file except in compliance with the License.
6e5468b6b0242c072d0b7eea7e6c75a536cb650dfAmit Mahajan * You may obtain a copy of the License at
7e5468b6b0242c072d0b7eea7e6c75a536cb650dfAmit Mahajan *
8e5468b6b0242c072d0b7eea7e6c75a536cb650dfAmit Mahajan *      http://www.apache.org/licenses/LICENSE-2.0
9e5468b6b0242c072d0b7eea7e6c75a536cb650dfAmit Mahajan *
10e5468b6b0242c072d0b7eea7e6c75a536cb650dfAmit Mahajan * Unless required by applicable law or agreed to in writing, software
11e5468b6b0242c072d0b7eea7e6c75a536cb650dfAmit Mahajan * distributed under the License is distributed on an "AS IS" BASIS,
12e5468b6b0242c072d0b7eea7e6c75a536cb650dfAmit Mahajan * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13e5468b6b0242c072d0b7eea7e6c75a536cb650dfAmit Mahajan * See the License for the specific language governing permissions and
14e5468b6b0242c072d0b7eea7e6c75a536cb650dfAmit Mahajan * limitations under the License.
15e5468b6b0242c072d0b7eea7e6c75a536cb650dfAmit Mahajan */
16e5468b6b0242c072d0b7eea7e6c75a536cb650dfAmit Mahajan
17e5468b6b0242c072d0b7eea7e6c75a536cb650dfAmit Mahajanpackage com.android.internal.telephony;
18e5468b6b0242c072d0b7eea7e6c75a536cb650dfAmit Mahajan
19e5468b6b0242c072d0b7eea7e6c75a536cb650dfAmit Mahajan/**
20e5468b6b0242c072d0b7eea7e6c75a536cb650dfAmit Mahajan * An object that provides supporting methods, fields, and other functionality for configuring
21e5468b6b0242c072d0b7eea7e6c75a536cb650dfAmit Mahajan * and inspecting the results of operations on a test double (mock, fake or stub). The test double
22e5468b6b0242c072d0b7eea7e6c75a536cb650dfAmit Mahajan * is an object of type {@code T}.
23e5468b6b0242c072d0b7eea7e6c75a536cb650dfAmit Mahajan */
24e5468b6b0242c072d0b7eea7e6c75a536cb650dfAmit Mahajanpublic interface TestFixture<T> {
25e5468b6b0242c072d0b7eea7e6c75a536cb650dfAmit Mahajan
26e5468b6b0242c072d0b7eea7e6c75a536cb650dfAmit Mahajan    /**
27e5468b6b0242c072d0b7eea7e6c75a536cb650dfAmit Mahajan     * Obtain the actual test double provided by this holder. It is a requirement of this API
28e5468b6b0242c072d0b7eea7e6c75a536cb650dfAmit Mahajan     * that the test double as returned from this method be a Mockito mock or spy, so that a test
29e5468b6b0242c072d0b7eea7e6c75a536cb650dfAmit Mahajan     * can use Mockito APIs to directly instrument its behavior where needed.
30e5468b6b0242c072d0b7eea7e6c75a536cb650dfAmit Mahajan     *
31e5468b6b0242c072d0b7eea7e6c75a536cb650dfAmit Mahajan     * @return the test double.
32e5468b6b0242c072d0b7eea7e6c75a536cb650dfAmit Mahajan     */
33e5468b6b0242c072d0b7eea7e6c75a536cb650dfAmit Mahajan    T getTestDouble();
34e5468b6b0242c072d0b7eea7e6c75a536cb650dfAmit Mahajan}
35