/*
* Copyright 2015 Victor Albertos
*
* 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 io.rx_cache2.internal;
import io.reactivex.Flowable;
import io.reactivex.Maybe;
import io.reactivex.Observable;
import io.reactivex.Single;
import io.rx_cache2.DynamicKey;
import io.rx_cache2.DynamicKeyGroup;
import io.rx_cache2.EvictDynamicKey;
import io.rx_cache2.EvictDynamicKeyGroup;
import io.rx_cache2.EvictProvider;
import io.rx_cache2.Expirable;
import io.rx_cache2.LifeCache;
import io.rx_cache2.Reply;
import java.util.List;
import java.util.Map;
import java.util.concurrent.TimeUnit;
/**
* Provided to test as an integration test the library RxCache
*/
public interface ProvidersRxCache {
Single<List<Mock>> getMocksSingle(Single<List<io.rx_cache2.internal.Mock>> mocks);
Maybe<List<Mock>> getMocksMaybe(Maybe<List<io.rx_cache2.internal.Mock>> mocks);
Flowable<List<Mock>> getMocksFlowable(Flowable<List<io.rx_cache2.internal.Mock>> mocks);
Observable<List<io.rx_cache2.internal.Mock>> getMocks(Observable<List<io.rx_cache2.internal.Mock>> mocks);
Observable<Reply<List<io.rx_cache2.internal.Mock>>> getMocksWithDetailResponse(Observable<List<io.rx_cache2.internal.Mock>> mocks);
@LifeCache(duration = 1, timeUnit = TimeUnit.SECONDS)
Observable<Reply<List<io.rx_cache2.internal.Mock>>> getMocksListResponseOneSecond(Observable<List<io.rx_cache2.internal.Mock>> mocks);
Observable<Reply<Map<Integer, io.rx_cache2.internal.Mock>>> getMocksMapResponse(Observable<Map<Integer, io.rx_cache2.internal.Mock>> mocks);
Observable<Reply<io.rx_cache2.internal.Mock[]>> getMocksArrayResponse(Observable<io.rx_cache2.internal.Mock[]> mocks);
@LifeCache(duration = 0, timeUnit = TimeUnit.MINUTES)
Observable<Reply<List<io.rx_cache2.internal.Mock>>> getMocksLife0Minutes(Observable<List<io.rx_cache2.internal.Mock>> mocks);
@LifeCache(duration = 1, timeUnit = TimeUnit.MINUTES)
Observable<List<io.rx_cache2.internal.Mock>> getMocksLifeTimeMinutes(Observable<List<io.rx_cache2.internal.Mock>> mocks);
@LifeCache(duration = 1, timeUnit = TimeUnit.SECONDS)
Observable<List<io.rx_cache2.internal.Mock>> getMocksLifeTimeSeconds(Observable<List<io.rx_cache2.internal.Mock>> mocks);
@LifeCache(duration = 65000, timeUnit = TimeUnit.MILLISECONDS)
Observable<List<io.rx_cache2.internal.Mock>> getMocksLifeTimeMillis(Observable<List<io.rx_cache2.internal.Mock>> mocks);
Observable<List<io.rx_cache2.internal.Mock>> getMocksPaginate(Observable<List<io.rx_cache2.internal.Mock>> mocks, DynamicKey page);
@Expirable(false)
@LifeCache(duration = 1, timeUnit = TimeUnit.DAYS)
Observable<List<io.rx_cache2.internal.Mock>> getMocksPaginateNotExpirable(Observable<List<io.rx_cache2.internal.Mock>> mocks,
DynamicKey page);
Observable<List<io.rx_cache2.internal.Mock>> getMocksPaginateEvictProvider(Observable<List<io.rx_cache2.internal.Mock>> mocks,
DynamicKey page, EvictProvider evictProvider);
Reply<List<io.rx_cache2.internal.Mock>> getMocksBadReturnType(Observable<List<io.rx_cache2.internal.Mock>> mocks);
Observable<Reply<List<io.rx_cache2.internal.Mock>>> getMocksEvictProvider(Observable<List<io.rx_cache2.internal.Mock>> mocks,
EvictProvider evictProvider);
Observable<Reply<List<io.rx_cache2.internal.Mock>>> getMocksDynamicKeyEvictPage(Observable<List<io.rx_cache2.internal.Mock>> mocks,
DynamicKey page, EvictDynamicKey evictPage);
Observable<io.rx_cache2.internal.Mock> getLoggedMock(Observable<io.rx_cache2.internal.Mock> mock, EvictProvider evictProvider);
Observable<List<io.rx_cache2.internal.Mock>> getMocksFilteredPaginateEvict(Observable<List<io.rx_cache2.internal.Mock>> oMocks,
DynamicKeyGroup dynamicKeyGroup, EvictProvider evictDynamicKey);
@LifeCache(duration = 1, timeUnit = TimeUnit.MILLISECONDS)
Observable<List<io.rx_cache2.internal.Mock>> getEphemeralMocksPaginate(Observable<List<io.rx_cache2.internal.Mock>> mocks, DynamicKey page);
Observable<io.rx_cache2.internal.Mock> getMockWithoutLoaderObservable();
int getMockWithoutReturnObservable();
Observable<io.rx_cache2.internal.Mock> getMockMultipleObservables(Observable<io.rx_cache2.internal.Mock> mock, Observable<io.rx_cache2.internal.Mock> mock2);
Observable<io.rx_cache2.internal.Mock> getMockMultipleEvicts(Observable<io.rx_cache2.internal.Mock> mock, EvictProvider evictProvider,
EvictProvider evictProvider2);
Observable<io.rx_cache2.internal.Mock> getMockMultipleDynamicKeys(Observable<io.rx_cache2.internal.Mock> mock, DynamicKey dynamicKey,
DynamicKey dynamicKey2);
Observable<io.rx_cache2.internal.Mock> getMockEvictDynamicKeyProvidingDynamicKey(Observable<io.rx_cache2.internal.Mock> mock,
DynamicKey dynamicKey, EvictDynamicKey evictDynamicKey);
Observable<io.rx_cache2.internal.Mock> getMockEvictDynamicKeyWithoutProvidingDynamicKey(Observable<io.rx_cache2.internal.Mock> mock,
EvictDynamicKey evictDynamicKey);
Observable<io.rx_cache2.internal.Mock> getMockEvictDynamicKeyGroupProvidingDynamicKeyGroup(Observable<io.rx_cache2.internal.Mock> mock,
DynamicKeyGroup dynamicKeyGroup, EvictDynamicKeyGroup evictDynamicKeyGroup);
Observable<io.rx_cache2.internal.Mock> getMockEvictDynamicKeyGroupWithoutProvidingDynamicKeyGroup(Observable<io.rx_cache2.internal.Mock> mock,
EvictDynamicKeyGroup evictDynamicKeyGroup);
}