/**
  * @test
  */
 public function it_should_throw_an_exception_if_deserialized_string_is_not_a_command()
 {
     $command = new \stdClass();
     $this->serializer->shouldReceive('deserialize')->andReturn($command);
     $serializer = new UniversalCommandSerializer($this->serializer);
     $this->setExpectedException(\InvalidArgumentException::class);
     $serializer->deserialize('[]');
 }
 /**
  * @test
  */
 public function itShouldDeferDeserializationToInnerSerializer()
 {
     $serialized = ['test'];
     $return = ['original'];
     $this->serializer->shouldReceive('deserialize')->with($serialized)->andReturn($return)->once();
     $serializer = new RecursiveSerializer($this->serializer);
     $actualReturn = $serializer->deserialize($serialized);
     $this->assertEquals($return, $actualReturn);
 }