function it_should_be_transformed_to_an_array_with_internal_number(\DateTime $eventDate, DeliveryStatus $deliveryStatus)
 {
     $deliveryStatus->__toString()->willReturn('status');
     $this->beConstructedWith('trackingNumber', $eventDate, $deliveryStatus, 'internalNumber');
     $this->toArray()->shouldBeArray();
     $this->toArray()->shouldHaveKey('trackingNumber');
     $this->toArray()->shouldHaveKey('internalNumber');
     $this->toArray()->shouldHaveKey('eventDate');
     $this->toArray()->shouldHaveKey('status');
     $this->toArray()['trackingNumber']->shouldBeString('trackingNumber');
     $this->toArray()['trackingNumber']->shouldEqual('trackingNumber');
     $this->toArray()['internalNumber']->shouldBeString();
     $this->toArray()['internalNumber']->shouldEqual('internalNumber');
     $this->toArray()['eventDate']->shouldHaveType('\\DateTime');
     $this->toArray()['eventDate']->shouldEqual($eventDate);
     $this->toArray()['status']->shouldBeString();
     $this->toArray()['status']->shouldEqual('status');
 }
 /**
  * @param string $code
  *
  * @return null | DeliveryStatus
  */
 protected function getStateFromCode($code)
 {
     switch ($code) {
         case 'D':
         case 'D1':
         case 'D2':
         case 'RG':
         case 'DD':
         case 'B':
         case 'U':
         case 'VC':
         case 'RI':
         case 'RR':
             $state = DeliveryStatus::stateDelivered();
             break;
         default:
             $state = DeliveryStatus::stateInProgress();
             break;
     }
     return $state;
 }