Что значит выполнить TODO?
Есть задача: написать тест ExampleTest(junit) и выполнить TODO. Что значит выполнить TODO?
package com.example.cinema.base.webapp.facade.admin.impl;
import com.example.cinema.base.models.dto.ProductionStudioRequestDto;
import com.example.cinema.base.models.entitys.ProductionStudio;
import com.example.cinema.base.converter.ProductionStudioMapper;
import com.example.cinema.base.service.entity.impl.ProductionStudioServiceImpl;
import com.example.cinema.base.webapp.facade.admin.ProductionStudioServiceFacade;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Component;
@Component
@RequiredArgsConstructor
public class ProductionStudioServiceFacadeImpl implements ProductionStudioServiceFacade {
private final ProductionStudioServiceImpl productionStudioService;
private final ProductionStudioMapper productionStudioMapper;
@Override
public void save(ProductionStudioRequestDto dto) {
ProductionStudio studio = productionStudioMapper.toEntity(dto);
productionStudioService.save(studio);
}
@Override
public void delete(long id) {
//TODО валидация на существование
productionStudioService.deleteById(id);
}
@Override
public void update(long id, ProductionStudioRequestDto dto) {
//TODО валидация на существование
ProductionStudio studio = productionStudioMapper.toEntity(dto);
productionStudioService.save(studio);
}
}
Контроллер
package com.example.cinema.base.webapp.rest.admin;
import com.example.cinema.base.models.dto.ProductionStudioRequestDto;
import com.example.cinema.base.webapp.facade.admin.ProductionStudioServiceFacade;
import lombok.RequiredArgsConstructor;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("api/admin")
@RequiredArgsConstructor
public class AdminProductionStudioRestController {
private final ProductionStudioServiceFacade productionStudioServiceFacade;
@PostMapping("/studios")
public ResponseEntity<HttpStatus> addProductionStudio(@RequestBody ProductionStudioRequestDto dto) {
productionStudioServiceFacade.save(dto);
return ResponseEntity.ok(HttpStatus.OK);
}
@DeleteMapping("/studios/{id}")
public ResponseEntity<HttpStatus> deleteProductionStudio(@PathVariable("id") Long id) {
productionStudioServiceFacade.delete(id);
return ResponseEntity.ok(HttpStatus.OK);
}
@PutMapping("/studios/{id}")
public ResponseEntity<HttpStatus> updateProductionStudio(@PathVariable("id") Long id,
@RequestBody ProductionStudioRequestDto dto) {
productionStudioServiceFacade.update(id, dto);
return ResponseEntity.ok(HttpStatus.OK);
}
}
Ответы (2 шт):
Там в коде два раза есть //TODО валидация на существование. Именно это вам и нужно сделать - провести валидацию на существование после выполнения тех двух функций.
В коде стоит комментарий
//TODО валидация на существование
Стоит он в методах для удаления и изменения записи. Видимо предполагается, что в эти методы надо добавить код для проверки существования записи.
Т.е., к примеру, перед тем как удалить запись по id, надо сначала проверить, что такая запись существует.
Так как это, судя по всему, тестовое задание, то делать надо "красиво". Вероятней всего от вас ожидают, что проверку вы реализуете как отдельный метод. А так же корректно сделаете информирование об ошибках. В тех случаях когда записи не существует.