Ejemplo n.º 1
0
 function it_updates_review_subject_average_rating_from_review($averageRatingCalculator, $reviewSubjectManager, ReviewableInterface $reviewSubject, ReviewInterface $review)
 {
     $review->getReviewSubject()->willReturn($reviewSubject);
     $averageRatingCalculator->calculate($reviewSubject)->willReturn(4.5);
     $reviewSubject->setAverageRating(4.5)->shouldBeCalled();
     $reviewSubjectManager->flush($reviewSubject)->shouldBeCalled();
     $this->updateFromReview($review);
 }
Ejemplo n.º 2
0
 /**
  * @param ReviewInterface $review
  * @param ReviewableInterface[] $reviewSubjectsToRecalculate
  *
  * @return array
  */
 private function removeReviewsAndExtractSubject(ReviewInterface $review, array $reviewSubjectsToRecalculate)
 {
     $reviewSubject = $review->getReviewSubject();
     if (!in_array($reviewSubject, $reviewSubjectsToRecalculate)) {
         $reviewSubjectsToRecalculate[] = $reviewSubject;
     }
     $this->reviewManager->remove($review);
     return $reviewSubjectsToRecalculate;
 }
 function it_removes_soft_deleted_customer_reviews_and_recalculates_their_product_ratings($averageRatingUpdater, $reviewRepository, $reviewManager, ReviewerInterface $author, ReviewableInterface $reviewSubject, ReviewInterface $review)
 {
     $reviewRepository->findBy(['author' => $author])->willReturn([$review]);
     $review->getReviewSubject()->willReturn($reviewSubject);
     $reviewManager->remove($review)->shouldBeCalled();
     $reviewManager->flush()->shouldBeCalled();
     $averageRatingUpdater->update($reviewSubject)->shouldBeCalled();
     $this->removeReviewerReviews($author);
 }
Ejemplo n.º 4
0
 /**
  * {@inheritdoc}
  */
 public function updateFromReview(ReviewInterface $review)
 {
     $this->modifyReviewSubjectAverageRating($review->getReviewSubject());
 }