public function testClass()
{
$connectionStub = $this->prophesize(ConnectionInterface::class);
$connectionStub->beginTransaction(Argument::any())->shouldBeCalled()->willReturn(['transaction' => 'foo']);
$snippet = $this->snippetFromClass(Transaction::class);
$snippet->insertAfterLine(3, '$reflection = new \\ReflectionClass($datastore);
$property = $reflection->getProperty(\'connection\');
$property->setAccessible(true);
$property->setValue($datastore, $connectionStub);
$property->setAccessible(false);');
$snippet->addLocal('connectionStub', $connectionStub->reveal());
$res = $snippet->invoke('transaction');
$this->assertInstanceOf(Transaction::class, $res->returnVal());
}