/**
  * @test
  * @covers ::result
  */
 public function it_should_retrieve_a_partition_of_the_results_as_an_instance_of_a_value_object()
 {
     $definition = Definition::createNew(self::EXAMPLE_PROJECTION_NAME, '');
     $result = ['abc'];
     $expected = 'expected';
     $partition = 'streamName-Id';
     $this->givenDriverReturnsDefinition($definition);
     $this->thenDriverReturnsResult($definition, $result, $partition);
     $this->thenSerializerTransformsResultIntoAValueObject(self::EXAMPLE_CLASS_NAME, $result, $expected);
     $this->assertSame($expected, $this->repository->result($partition));
 }
 /**
  * @test
  * @covers ::withUpdatedQuery
  * @covers ::mode
  * @covers ::query
  * @covers ::name
  * @covers ::mayEmitNewEvents
  */
 public function it_should_update_the_query_and_return_a_new_object()
 {
     $name = 'Organisation';
     $query = 'MyNewQuery';
     $definition = Definition::createNew($name, 'MyQuery');
     $newDefinition = $definition->withUpdatedQuery($query);
     $this->assertNotSame($newDefinition, $definition);
     $this->assertSame($name, $newDefinition->name());
     $this->assertSame($query, $newDefinition->query());
     $this->assertSame(Definition::MODE_CONTINUOUS, $newDefinition->mode());
     $this->assertSame(false, $definition->mayEmitNewEvents());
 }