package com.lambdaworks.redis;
import static org.assertj.core.api.Assertions.assertThat;
import java.lang.reflect.Constructor;
import java.lang.reflect.Modifier;
import java.util.ArrayList;
import java.util.List;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import com.lambdaworks.codec.Base16;
import com.lambdaworks.codec.CRC16;
import com.lambdaworks.redis.cluster.SlotHash;
import com.lambdaworks.redis.cluster.models.partitions.ClusterPartitionParser;
import com.lambdaworks.redis.cluster.models.slots.ClusterSlotsParser;
import com.lambdaworks.redis.internal.LettuceLists;
import com.lambdaworks.redis.models.command.CommandDetailParser;
import com.lambdaworks.redis.models.role.RoleParser;
import com.lambdaworks.redis.protocol.LettuceCharsets;
/**
* @author Mark Paluch
*/
@RunWith(Parameterized.class)
@SuppressWarnings("unchecked")
public class PrivateAccessorTest {
private Class<?> theClass;
@Parameterized.Parameters
public static List<Object[]> parameters() {
List<Class<?>> classes = LettuceLists.unmodifiableList(LettuceStrings.class, LettuceFutures.class, LettuceCharsets.class,
CRC16.class, SlotHash.class, Base16.class, KillArgs.Builder.class,
SortArgs.Builder.class, ZStoreArgs.Builder.class,
ClusterSlotsParser.class, CommandDetailParser.class, RoleParser.class,
ClusterPartitionParser.class);
List<Object[]> result = new ArrayList<>();
for (Class<?> aClass : classes) {
result.add(new Object[] { aClass });
}
return result;
}
public PrivateAccessorTest(Class<?> theClass) {
this.theClass = theClass;
}
@Test
public void testLettuceStrings() throws Exception {
Constructor<?> constructor = theClass.getDeclaredConstructor();
assertThat(Modifier.isPrivate(constructor.getModifiers())).isTrue();
constructor.setAccessible(true);
constructor.newInstance();
}
}