Error creating bean with name 'redisKeyValueAdapter': Bean instantiation via constructor failed

1k views Asked by At

We have used Redis Caching in a project. And we have implemented Mockito and we are mocking the repository layer but redisTemplate is being used to get the data from the cache at the service layer and we are trying to mock RedisTemplate but unable to do so

@MockBean
private RedisTemplate<Object, Object> redisTemplate;

    @Test
    public void testGetProductHappyPath() {
        log.info(ApplicationConstantsTest.METHOD_ENTER_LABEL);

        when(redisTemplate.keys(ArgumentMatchers.any())).thenReturn(null);
        final RequestBuilder requestBuilder = MockMvcRequestBuilders.get(ApplicationConstantsTest.PRODUCT_WALLET_OF_PRODUCT, Integer.MAX_VALUE)
                .accept(MediaType.APPLICATION_JSON);

        try {
            mockMvc.perform(requestBuilder).andExpect(status().isOk());
            log.info(ApplicationConstantsTest.METHOD_EXIT_LABEL);
        } catch (final Exception e) {
            log.error(ApplicationConstantsTest.METHOD_EXCEPTION_LABEL, e);
        } 

    }

But we are getting this:

Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.data.redis.core.RedisKeyValueAdapter]: Constructor threw exception; nested exception is java.lang.IllegalArgumentException: ConnectionFactory must not be null!
    at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:217)
    at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:117)
    at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:309)
    ... 65 common frames omitted
Caused by: java.lang.IllegalArgumentException: ConnectionFactory must not be null!
    at org.springframework.util.Assert.notNull(Assert.java:201)
    at org.springframework.data.redis.listener.RedisMessageListenerContainer.setConnectionFactory(RedisMessageListenerContainer.java:311)
    at org.springframework.data.redis.core.RedisKeyValueAdapter.initMessageListenerContainer(RedisKeyValueAdapter.java:712)
    at org.springframework.data.redis.core.RedisKeyValueAdapter.<init>(RedisKeyValueAdapter.java:196)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:64)
    at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:500)
    at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:481)
    at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:204)
0

There are 0 answers