Esempio n. 1
0
 /**
  * Book pickup action
  *
  * @Method ("POST")
  * @Route (
  *      "/pickup.{_format}",
  *      name="wk_dhl_api_b2b_book_pickup",
  *      requirements={
  *          "_format"="(xml|json)"
  *      },
  *      defaults={
  *          "_format"="json"
  *      }
  * )
  *
  * @param Request $request
  * @return Response
  */
 public function bookPickupAction(Request $request)
 {
     try {
         $pickupRequest = $this->serializer->deserialize($request->getContent(), 'Wk\\DhlApiBundle\\Model\\B2b\\Request\\BookPickupRequest', 'json');
         $result = $this->connection->bookPickup($pickupRequest->BookingInformation, $pickupRequest->PickupAddress, $pickupRequest->ContactOrderer);
         return $this->generateResponse($result);
     } catch (BadRequestHttpException $exception) {
         return $this->generateError($exception->getMessage(), $exception->getCode(), 400);
     } catch (\InvalidArgumentException $exception) {
         return $this->generateError($exception->getMessage(), 1001, 400);
     } catch (\Exception $exception) {
         return $this->generateError($exception->getMessage(), 1000);
     }
 }
Esempio n. 2
0
 /**
  * Tests booking a pickup
  *
  * @param PickupBookingInformationType $bookingInformation
  * @param PickupAddressType            $senderAddress
  * @param PickupOrdererType            $ordererAddress
  * @param BookPickupResponse           $expectedResponse
  * @param Exception                    $expectedException
  *
  * @dataProvider provideBookPickupData
  */
 public function testBookPickup(PickupBookingInformationType $bookingInformation, PickupAddressType $senderAddress, PickupOrdererType $ordererAddress = null, BookPickupResponse $expectedResponse = null, Exception $expectedException = null)
 {
     if ($expectedException) {
         $this->clientWillThrowException($expectedException);
         // Fire the function which is to be tested
         $this->connection->bookPickup($bookingInformation, $senderAddress, $ordererAddress);
     } elseif ($expectedResponse) {
         // Stubbing
         $this->client->expects($this->any())->method('__soapCall')->willReturn($expectedResponse);
         // Fire the function which is to be tested
         $response = $this->connection->bookPickup($bookingInformation, $senderAddress, $ordererAddress);
         // check if the response has a status information with the expected status code
         $this->assertArrayHasKey('Status', $response);
         $this->assertArrayHasKey('StatusCode', $response['Status']);
         $this->assertSame($expectedResponse->toArray(), $response);
     }
 }