0
package com.services.report.service.controller;

import com.services.report.service.model.SmsInfo;
import com.services.report.service.repository.SmsInfoRepository;
import com.services.report.service.request.screen.SmsInfoQueryRequest;
import com.services.report.service.response.screen.SmsInfoQueryResponse;
import com.services.report.service.service.ReporterService;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.junit.MockitoJUnitRunner;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import static org.junit.Assert.assertEquals;
import static org.mockito.Mockito.when;

@RunWith(MockitoJUnitRunner.class)
public class ScreenQueryControllerTest {

        @Mock
        private ReporterService reporterService;

        @Mock
        private SmsInfoRepository smsInfoRepository;

        @InjectMocks
        private ScreenQueryController screenQueryController = new ScreenQueryController();

        private SmsInfoQueryRequest smsInfoQueryRequest;
        private SmsInfoQueryResponse smsInfoQueryResponse;
        private SmsInfo smsInfo;
        private List<SmsInfo> list;


    @Test
    public void testGetSmsInfoByQuery_whenRequestBodyIsValidReturnResponseStatusSuccess() {
        getsmsInfoQueryRequest();
        list = new ArrayList<>();
        getSmsInfo();
        list.add(smsInfo);
        when(smsInfoRepository.query(smsInfoQueryRequest)).thenReturn(list);
        smsInfoQueryResponse = screenQueryController.getSmsInfoByQuery(smsInfoQueryRequest);
        assertEquals("SUCCESS", smsInfoQueryResponse.getStatus());

    }

    public SmsInfoQueryRequest getsmsInfoQueryRequest(){
        smsInfoQueryRequest = new SmsInfoQueryRequest();
        smsInfoQueryRequest.setPartnerId("99");
        smsInfoQueryRequest.setCompanyId("1");
        smsInfoQueryRequest.setStartDate(new Date());
        smsInfoQueryRequest.setEndDate(new Date());
        return smsInfoQueryRequest;

    }

    public SmsInfo getSmsInfo() {

        smsInfo = new SmsInfo();
        smsInfo.setId("1");
        smsInfo.setVersion(1L);
        smsInfo.setUpdateDate(new Date());
        smsInfo.setCreateDate(new Date());
        smsInfo.setStatus("completed");
        smsInfo.setPartnerId("999");
        smsInfo.setCompanyId("888");
        smsInfo.setUser("admin");
        smsInfo.setRequestName("Request-3");
        smsInfo.setStartDate(new Date());
        smsInfo.setEndDate(new Date());
        smsInfo.setMessage("testt");
        smsInfo.setAlfanumeric("alfanumeric");
        smsInfo.setBmspGroupId("1");
        smsInfo.setBmspJobIds(new ArrayList<>());
        smsInfo.setReceiverCount(1L);
        smsInfo.setSuccessCount(2L);
        smsInfo.setFailureCount(3L);
        smsInfo.setWaitingCount(4L);
        smsInfo.setLastUpdateEventTime(5L);
        smsInfo.setErrorReason(new ArrayList<>());
        smsInfo.setRequestType("Request-Type");
        smsInfo.setInfos(new ArrayList<>());
        smsInfo.setSource("Kaynak");
        smsInfo.setSmsType("Sms");
        return smsInfo;

    }

}

In this way, I have multiple tests and I don't get an error when I just run the stand-alone test method, but when I run the ScreenQueryControllerTest method, I get the following log. The situation is the same for a single test or multiple tests, how can I solve it, similar solutions here did not work for me, I am about to lose my mind.

  • Process finished with exit code -1 org.mockito.exceptions.misusing.UnnecessaryStubbingException: Unnecessary stubbings detected in test class: ScreenQueryControllerTest Clean & maintainable test code requires zero unnecessary code. Following stubbings are unnecessary (click to navigate to relevant line of code): 1. -> at services.report.service.controller.ScreenQueryControllerTest.testGetSmsInfoByQuery_whenRequestBodyIsValidReturnResponseStatusSuccess(ScreenQueryControllerTest.java:46) Please remove unnecessary stubbings or use 'lenient' strictness. – Defne Sabancı Jun 09 '22 at 09:55
  • Please add the complete error message that you see to your question. – tgdavies Jun 09 '22 at 09:58
  • And indicate where line 46 is. – tgdavies Jun 09 '22 at 10:15
  • You'll also need to show the code of getSmsInfoByQuery – tgdavies Jun 09 '22 at 10:18
  • wrong line is : when(smsInfoRepository.query(smsInfoQueryRequest)).thenReturn(list); – Defne Sabancı Jun 09 '22 at 10:24
  • You'll also need to show the code of getSmsInfoByQuery – tgdavies Jun 09 '22 at 23:02

0 Answers0