MockedCommandObjectsTestBase.java
package redis.clients.jedis.mocked;
import java.util.List;
import java.util.Map;
import java.util.Set;
import org.json.JSONArray;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.Mock;
import redis.clients.jedis.CommandObject;
import redis.clients.jedis.GeoCoordinate;
import redis.clients.jedis.StreamEntryID;
import redis.clients.jedis.resps.*;
import redis.clients.jedis.search.ProfilingInfo;
import redis.clients.jedis.search.SearchResult;
import redis.clients.jedis.search.aggr.AggregationResult;
import redis.clients.jedis.timeseries.*;
import redis.clients.jedis.util.KeyValue;
import org.mockito.junit.jupiter.MockitoExtension;
/**
* Provides an exhaustive list of mocked {@link redis.clients.jedis.CommandObject}s for use in unit tests.
*/
@ExtendWith(MockitoExtension.class)
public abstract class MockedCommandObjectsTestBase {
/**
* Used for JSON related tests. The fields are not used actually, given that tests are mocked.
*/
@SuppressWarnings("unused")
public final static class MyBean {
String field1;
String field2;
}
// Below follows a list of mocked CommandObjects, one per type. This is the cleanest way to create
// mocks, given that CommandObject is a generic class. Using {@code Mockito.mock(...)} yields too
// many warnings related to generics.
// To make the code more readable, try to keep the list sorted alphabetically, and without automatic
// reformatting.
// @formatter:off
@Mock protected CommandObject<AggregationResult> aggregationResultCommandObject;
@Mock protected CommandObject<Boolean> booleanCommandObject;
@Mock protected CommandObject<Class<?>> classCommandObject;
@Mock protected CommandObject<Double> doubleCommandObject;
@Mock protected CommandObject<FunctionStats> functionStatsCommandObject;
@Mock protected CommandObject<KeyValue<Long, Double>> keyValueLongDoubleCommandObject;
@Mock protected CommandObject<KeyValue<Long, Long>> keyValueLongLongCommandObject;
@Mock protected CommandObject<KeyValue<String, List<String>>> keyValueStringListStringCommandObject;
@Mock protected CommandObject<KeyValue<String, List<Tuple>>> keyValueStringListTupleCommandObject;
@Mock protected CommandObject<KeyValue<String, String>> keyValueStringStringCommandObject;
@Mock protected CommandObject<KeyValue<String, Tuple>> keyValueStringTupleCommandObject;
@Mock protected CommandObject<KeyValue<byte[], List<Tuple>>> keyValueBytesListTupleCommandObject;
@Mock protected CommandObject<KeyValue<byte[], List<byte[]>>> keyValueBytesListBytesCommandObject;
@Mock protected CommandObject<KeyValue<byte[], Tuple>> keyValueBytesTupleCommandObject;
@Mock protected CommandObject<KeyValue<byte[], byte[]>> keyValueBytesBytesCommandObject;
@Mock protected CommandObject<LCSMatchResult> lcsMatchResultCommandObject;
@Mock protected CommandObject<List<Boolean>> listBooleanCommandObject;
@Mock protected CommandObject<List<Class<?>>> listClassCommandObject;
@Mock protected CommandObject<List<Double>> listDoubleCommandObject;
@Mock protected CommandObject<List<GeoCoordinate>> listGeoCoordinateCommandObject;
@Mock protected CommandObject<List<GeoRadiusResponse>> listGeoRadiusResponseCommandObject;
@Mock protected CommandObject<List<JSONArray>> listJsonArrayCommandObject;
@Mock protected CommandObject<List<LibraryInfo>> listLibraryInfoCommandObject;
@Mock protected CommandObject<List<List<Object>>> listListObjectCommandObject;
@Mock protected CommandObject<List<List<String>>> listListStringCommandObject;
@Mock protected CommandObject<List<Long>> listLongCommandObject;
@Mock protected CommandObject<List<Map.Entry<String, List<StreamEntry>>>> listEntryStringListStreamEntryCommandObject;
@Mock protected CommandObject<List<Map.Entry<String, String>>> listEntryStringStringCommandObject;
@Mock protected CommandObject<List<Map.Entry<byte[], byte[]>>> listEntryBytesBytesCommandObject;
@Mock protected CommandObject<List<MyBean>> listMyBeanCommandObject;
@Mock protected CommandObject<List<Object>> listObjectCommandObject;
@Mock protected CommandObject<List<StreamConsumerInfo>> listStreamConsumerInfoCommandObject;
@Mock protected CommandObject<List<StreamConsumersInfo>> listStreamConsumersInfoCommandObject;
@Mock protected CommandObject<List<StreamEntry>> listStreamEntryCommandObject;
@Mock protected CommandObject<List<StreamEntryID>> listStreamEntryIdCommandObject;
@Mock protected CommandObject<List<StreamGroupInfo>> listStreamGroupInfoCommandObject;
@Mock protected CommandObject<List<StreamPendingEntry>> listStreamPendingEntryCommandObject;
@Mock protected CommandObject<List<String>> listStringCommandObject;
@Mock protected CommandObject<List<TSElement>> listTsElementCommandObject;
@Mock protected CommandObject<List<Tuple>> listTupleCommandObject;
@Mock protected CommandObject<List<byte[]>> listBytesCommandObject;
@Mock protected CommandObject<Long> longCommandObject;
@Mock protected CommandObject<Map.Entry<AggregationResult, ProfilingInfo>> entryAggregationResultMapStringObjectCommandObject;
@Mock protected CommandObject<Map.Entry<Long, byte[]>> entryLongBytesCommandObject;
@Mock protected CommandObject<Map.Entry<SearchResult, ProfilingInfo>> entrySearchResultMapStringObjectCommandObject;
@Mock protected CommandObject<Map.Entry<StreamEntryID, List<StreamEntry>>> entryStreamEntryIdListStreamEntryCommandObject;
@Mock protected CommandObject<Map.Entry<StreamEntryID, List<StreamEntryID>>> entryStreamEntryIdListStreamEntryIdCommandObject;
@Mock protected CommandObject<Map<String, List<String>>> mapStringListStringCommandObject;
@Mock protected CommandObject<Map<String, List<StreamEntry>>> mapStringListStreamEntryCommandObject;
@Mock protected CommandObject<Map<String, Long>> mapStringLongCommandObject;
@Mock protected CommandObject<Map<String, Map<String, Double>>> mapStringMapStringDoubleCommandObject;
@Mock protected CommandObject<Map<String, Object>> mapStringObjectCommandObject;
@Mock protected CommandObject<Map<String, String>> mapStringStringCommandObject;
@Mock protected CommandObject<Map<String, TSMGetElement>> mapStringTsmGetElementCommandObject;
@Mock protected CommandObject<Map<String, TSMRangeElements>> mapStringTsmRangeElementsCommandObject;
@Mock protected CommandObject<Map<byte[], byte[]>> mapBytesBytesCommandObject;
@Mock protected CommandObject<MyBean> myBeanCommandObject;
@Mock protected CommandObject<Object> objectCommandObject;
@Mock protected CommandObject<ScanResult<Map.Entry<String, String>>> scanResultEntryStringStringCommandObject;
@Mock protected CommandObject<ScanResult<Map.Entry<byte[], byte[]>>> scanResultEntryBytesBytesCommandObject;
@Mock protected CommandObject<ScanResult<String>> scanResultStringCommandObject;
@Mock protected CommandObject<ScanResult<Tuple>> scanResultTupleCommandObject;
@Mock protected CommandObject<ScanResult<byte[]>> scanResultBytesCommandObject;
@Mock protected CommandObject<SearchResult> searchResultCommandObject;
@Mock protected CommandObject<Set<String>> setStringCommandObject;
@Mock protected CommandObject<Set<byte[]>> setBytesCommandObject;
@Mock protected CommandObject<StreamEntryID> streamEntryIdCommandObject;
@Mock protected CommandObject<StreamFullInfo> streamFullInfoCommandObject;
@Mock protected CommandObject<StreamInfo> streamInfoCommandObject;
@Mock protected CommandObject<StreamPendingSummary> streamPendingSummaryCommandObject;
@Mock protected CommandObject<String> stringCommandObject;
@Mock protected CommandObject<TSElement> tsElementCommandObject;
@Mock protected CommandObject<TSInfo> tsInfoCommandObject;
@Mock protected CommandObject<Tuple> tupleCommandObject;
@Mock protected CommandObject<byte[]> bytesCommandObject;
// @formatter:on
}