public function testAddNumberToUserValidationPassesWillProceedToSaveUser() { $user = $this->createExampleUser(); $number = $this->createExamplePhoneNumber(); $this->userRepositoryMock->expects($this->once())->method('findById')->with(100)->will($this->returnValue($user)); $this->validatorMock->expects($this->once())->method('validate')->with($number)->will($this->returnValue(new ConstraintViolationList())); $this->numberRepositoryMock->expects($this->once())->method('save')->with($number); $this->useCase->addNumberToUser($number, $user); $this->assertSame($number, $user->getPhoneNumbers()->get(0)); $this->assertSame($user, $number->getOwner()); }
/** * @param PhoneNumber $number * @param User $user * @param Request $request * @return View */ private function processForm(PhoneNumber $number, User $user, Request $request) { $number->setOwner($user); $form = $this->formFactory->createNamed('phoneNumber', 'phone_number_add', $number); $form->handleRequest($request); if (!$form->isValid()) { return new View($form, 400); } $this->useCase->addNumberToUser($number, $user, false); return new View($number, 201, ['Location' => $this->router->generate('arkon_phonebook_get_user_number', ['id' => $user->getId(), 'numberId' => $number->getId()], true)]); }