when (). thenReturn () не возвращает вызов метода уровня обслуживания - PullRequest
0 голосов
/ 02 октября 2019

У меня проблема с тем, что когда я пытаюсь when(linkingTicketsService.getLinkedTicketDetails(list)).thenReturn(linkingTicketsResponseList); в моем тесте, он все еще запускает метод linkingTicketsService.getLinkedTicketDetails (list), не должен ли он просто перенастроить на макет, который я подготовил, а НЕ запускать методсам? Я пробовал Autowiring LinkingTicketsService, который я вижу в предыдущем посте, но это не помогло, совет? спасибо

Код теста:

@RunWith(MockitoJUnitRunner.class)
@SpringBootTest(classes = LinkingTicketsService.class)
public class LinkingTicketsServiceTest {

    @Autowired
    LinkingTicketsService linkingTicketsService;

    @Mock
    WorkOrdersHierarchyRepo workOrdersHierarchyRepo;

    @Before
    public void setup() {
        linkingTicketsService = new LinkingTicketsService(
                workOrdersHierarchyRepo,
                workOrderPTRViewRepo,
                ticketEngagementRepo,
                productMasterRepo
        );
    }

    @Test
    public void getLinkedTicketsByTicketNumber() {

        WorkOrderPTRView workOrderPTRView1 = new WorkOrderPTRView();
etc...

        Optional<WorkOrderPTRView> workOrderPTRViewOptional =  Optional.of(workOrderPTRView1);

        List<LinkingTicketsResponse> linkingTicketsResponseList = new ArrayList<>();
        LinkingTicketsResponse response = new LinkingTicketsResponse();
etc...

        List<Long> list = new ArrayList<>();
        list.add(123L);

        when(workOrderPTRViewRepo.findWorkOrderPTRViewByPartnerTicketNumber("567")).thenReturn(workOrderPTRViewOptional);
        when(linkingTicketsService.getLinkedTicketDetails(list)).thenReturn(linkingTicketsResponseList);

        LinkingTicketsResponse linkingTicketsResponse = linkingTicketsService.getLinkedTicketsByTicketNumber("567");
        assertThat(linkingTicketsResponse.getPartnerTicketNumber(), equalTo("123"));
    }
}

Методы:

    public LinkingTicketsResponse getLinkedTicketsByTicketNumber(String ticketNumber) {

        List<LinkingTicketsResponse> linkingTicketsResponseList = new ArrayList<>();
        Optional<WorkOrderPTRView> workOrderPTRViewOptional;

        //getting work order number
        workOrderPTRViewOptional = workOrderPTRViewRepo.findWorkOrderPTRViewByPartnerTicketNumber(ticketNumber);
        if (workOrderPTRViewOptional.isPresent()) {
            List<Long> workOrderNumbers = new ArrayList<>();
            workOrderNumbers.add(workOrderPTRViewOptional.get().getOrderId());

            linkingTicketsResponseList = getLinkedTicketDetails(workOrderNumbers);
        } else {
            LinkingTicketsResponse linkingTicketsResponse = new LinkingTicketsResponse();
            linkingTicketsResponse.setStatusCode(200);
            linkingTicketsResponse.setStatus("Failed.");
            linkingTicketsResponse.setStatusMessage("Could not find record for Work Order PTR");
            linkingTicketsResponseList.add(linkingTicketsResponse);
        }
        return linkingTicketsResponseList.get(0);
    }
...