微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

java.lang.AssertionError: Status expected:<201> but was:<500>

如何解决java.lang.AssertionError: Status expected:<201> but was:<500>

PTAControllerTest.Java

@Test
    public void testCreateProducerTeamAccess() throws Exception {

        String expectedProducerId = "AGT02";

        objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNowN_PROPERTIES,false);
        objectMapper.configure(DeserializationFeature.FAIL_ON_IGnorED_PROPERTIES,false);
        
        // Instantiate request DTO
        ProducerTeamAccesspk newProducerTeamAccesspk = new ProducerTeamAccesspk(expectedProducerId,"ATL");
        
        ProducerTeamAccessDto requestProducerTeamAccessDto = createMockProducerTeamAccessDto(newProducerTeamAccesspk);

        ProducerTeamAccess createdProducerTeamAccess = producerTeamAccessMapper.map(requestProducerTeamAccessDto);

        Mockito
                .when(producerService.exists(Mockito.anyString()))
                .thenReturn(true);
        
        Mockito
                .when(producerTeamAccessRepository.findById(ArgumentMatchers.any(ProducerTeamAccesspk.class)))
                .thenReturn(Optional.of(createdProducerTeamAccess));
        
        Mockito
                .when(producerTeamAccessRepository.saveAndFlush(ArgumentMatchers.any(ProducerTeamAccess.class)))
                .thenReturn(createdProducerTeamAccess);

        Mockito
                .donothing()
                .when(messageSender)
                .sendCreated(Mockito.any(BaseDto.class));

        String requestProducerTeamAccessDtoJson = objectMapper.writeValueAsstring(requestProducerTeamAccessDto);

        // remove keys that are not allowed to be set
        DocumentContext doc = JsonPath.parse(requestProducerTeamAccessDtoJson);
        doc.delete("links");
        requestProducerTeamAccessDtoJson = doc.jsonString();

        RequestBuilder request = RestDocumentationRequestBuilders
                .post(controllerPath,expectedProducerId)
                .content(requestProducerTeamAccessDtoJson)
                .contentType(CustomMediaType.APPLICATION_aim_API_V1_JSON_UTF8)
                .accept(CustomMediaType.APPLICATION_aim_API_V1_JSON_UTF8);

        MvcResult result = this.mockmvc
                .perform(request)
                .andExpect(status().isCreated())
                .andDo(document("{method-name}",resourceDetails()
                                .description("To create a new ProducerTeamAccess resource,POST a JSON resource representation to the /producerTeamAccesss endpoint with the content being a single JSON object containing all of the required ProducerTeamAccess fields,and additionally any optional fields. You may include the TeamId field in your request,but it will be ignored,and instead will be saved with the newly created resource ID as assigned by the server. " +
                                        "Upon acceptance and successful processing a request to create a new ProducerTeamAccess resource,the server will respond with a 201 Created and a Location header indicating the URI of the newly created ProducerTeamAccess resource.")
                                .summary("Create a ProducerTeamAccess resource")
                                .requestSchema(Schema.schema("ProducerTeamAccessDto"))
                                .tag(TAG),pathParameters(
                                        parameterWithName("producerId").description("producerId of the ProducerTeamAccess to create")),getRequestProducerTeamAccessDto(false)))
                .andReturn();
        

    }

PTAService.java

public ProducerTeamAccessDto save(String producerId,ProducerTeamAccessCreateDto producerTeamAccessCreateDto) {

        this.validate(producerId,producerTeamAccessCreateDto);

        ProducerTeamAccess ProducerTeamAccesstoSave = producerTeamAccessMapper.mapFromCreateDto(producerTeamAccessCreateDto);

        ProducerTeamAccesstoSave.setProducerId(producerId);

        ProducerTeamAccesstoSave.setCreatedById(UserSession.getUserId());
        ProducerTeamAccesstoSave.setDateAdded(Date.Now());
        ProducerTeamAccesstoSave.setModifiedById(UserSession.getUserId());
        ProducerTeamAccesstoSave.setDateModified(Date.Now());

        ProducerTeamAccess newProducerTeamAccess = ProducerTeamAccessRepository.saveAndFlush(ProducerTeamAccesstoSave);

        return producerTeamAccessMapper.map(newProducerTeamAccess);
    }

public ResponseEntity<Void> createProducerTeamAccess(
            @PathVariable("producerId") String producerId,@RequestBody ProducerTeamAccessCreateDto producerTeamAccessCreateDto,UriComponentsBuilder ucBuilder) {

        logger.info("Creating ProducerTeamAccess.");
        
        ProducerTeamAccessDto newProducerTeamAccessDto = producerTeamAccessService.save(producerId,producerTeamAccessCreateDto);
        
        try {
            messageSender.sendCreated(newProducerTeamAccessDto);
        }
        catch (Exception e) {
            logger.error("Exception occured while sending the ProducerTeamAccess create message to the Queue");
        }   
        // redirect to newly created ProducerTeamAccess record
        HttpHeaders headers = new HttpHeaders();
        headers.setLocation(ucBuilder.path(controllerPath + "/{teamId}").buildAndExpand(newProducerTeamAccessDto.getTeamId()).toUri());
        return new ResponseEntity<Void>(headers,HttpStatus.CREATED);   
    }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。