contactHelper = $this->createMock(ContactHelper::class); $this->configuration = $this->createMock(Configuration::class); $this->configuration->method('getAccountSid') ->willReturn('123'); } public function testMissingFromThrowsBadRequestException(): void { $this->expectException(BadRequestHttpException::class); $request = $this->createMock(Request::class); $inputBag = new InputBag([ 'AccountSid' => '123', 'From' => '', ]); $request->request = $inputBag; $this->getCallback()->getMessage($request); } public function testMissingBodyThrowsBadRequestException(): void { $this->expectException(BadRequestHttpException::class); $request = $this->createMock(Request::class); $inputBag = new InputBag([ 'AccountSid' => '123', 'From' => '321', 'Body' => '', ]); $request->request = $inputBag; $this->getCallback()->getMessage($request); } public function testMismatchedAccountSidThrowsBadRequestException(): void { $this->expectException(BadRequestHttpException::class); $request = $this->createMock(Request::class); $inputBag = new InputBag([ 'AccountSid' => '321', ]); $request->request = $inputBag; $this->getCallback()->getMessage($request); } public function testMessageIsReturned(): void { $request = $this->createMock(Request::class); $request->method('get') ->willReturn('Hello'); $inputBag = new InputBag([ 'AccountSid' => '123', 'From' => '321', 'Body' => 'Hello', ]); $request->request = $inputBag; $this->assertEquals('Hello', $this->getCallback()->getMessage($request)); } /** * @return TwilioCallback */ private function getCallback() { return new TwilioCallback($this->contactHelper, $this->configuration); } }