def test_update_drink_review_fail( drink_repository_mock, drink_id, drink_name, drink_image_url, drink_type, ): drink_repository_mock.find_by_drink_id.return_value = None drink_repository_mock.update.return_value = None drink_application_service = DrinkApplicationService( drink_repository=drink_repository_mock) input_dto = UpdateDrinkReviewInputDto(drink_id=str(drink_id), old_drink_rating=5, new_drink_rating=4) actual = drink_application_service.update_drink_review(input_dto) expected = FailedOutputDto( type="Resource Not Found Error", message="a9a94653-eede-5172-bd44-55653d0dc908의 술을 찾을 수 없습니다.") assert actual == expected
def update_review( self, input_dto: UpdateReviewInputDto, drink_application_service: DrinkApplicationService, ) -> Union[UpdateReviewOutputDto, FailedOutputDto]: try: review_id = ReviewId.from_str(input_dto.review_id) old_review = self._review_repository.find_by_review_id(review_id) old_rating = int(old_review.rating) new_review = Review( id=old_review.id, drink_id=old_review.drink_id, user_id=old_review.user_id, rating=ReviewRating(value=input_dto.rating), comment=input_dto.comment, created_at=old_review.created_at, updated_at=time.time(), ) self._review_repository.update(new_review) drinks_input_dto = UpdateDrinkReviewInputDto( drink_id=str(new_review.drink_id), old_drink_rating=old_rating, new_drink_rating=input_dto.rating, ) drink_update_review_output_dto = drink_application_service.update_drink_review( input_dto=drinks_input_dto) if not drink_update_review_output_dto.status: return drink_update_review_output_dto return UpdateReviewOutputDto() except ResourceNotFoundError as e: return FailedOutputDto.build_resource_not_found_error( message=str(e)) except Exception as e: return FailedOutputDto.build_system_error(message=str(e))
def test_update_drink_review_success( drink_repository_mock, drink_id, drink_name, drink_image_url, drink_type, ): drink_repository_mock.find_by_drink_id.return_value = Drink( id=drink_id, name=drink_name, image_url=drink_image_url, type=drink_type) drink_repository_mock.update.return_value = None drink_application_service = DrinkApplicationService( drink_repository=drink_repository_mock) input_dto = UpdateDrinkReviewInputDto(drink_id=str(drink_id), old_drink_rating=5, new_drink_rating=4) actual = drink_application_service.update_drink_review(input_dto) expected = UpdateDrinkReviewOutputDto() assert actual == expected