$identityHandler = null;
/**
 * Configure an optional Psr\Log\LoggerInterface implementation to assist with debugging. In this case, we'll write a
 * connection.log to the same directory as this simplefm_example.php file using Monolog\Logger.
 */
$logger = new Logger('connection');
$connectionLogPath = dirname(__FILE__) . '/connection.log';
$logger->pushHandler(new StreamHandler($connectionLogPath));
/**
 * Create a Soliant\SimpleFM\Connection\Connection with all the required dependencies injected.
 */
$connection = new Connection($httpClient, $uri, $database, $identityHandler, $logger);
/**
 * Create a Soliant\SimpleFM\Client\ResultSet\ResultSetClient with the new Connection and a DateTimeZone;
 */
$resultSetClient = new ResultSetClient($connection, new DateTimeZone('UTC'));
/**
 * Now that you have configured a ResultSetClient, you can execute it with a Soliant\SimpleFM\Connection\Command. The
 * Command expects a layout name and a command array. The command array accepts the name/values defined by the XML API
 * syntax for FileMaker Server. Some of the FileMaker XML API commands are a key only (with no value). For example
 * `-find`. For a command with no explicit value, use a null value in the command array.
 * See doc/filemaker/fms15_cwp_guide.pdf, Chapter 5 on page 40 for XML API command documentation.
 */
$command = new Command('Task Details', ['-max' => 2, '-skip' => 1, '-findall' => null]);
/**
 * When the Command is ready, execute it on the Client
 */
$records = $resultSetClient->execute($command);
/**
 * Handle the result:
 *
 /**
  * @dataProvider specialCharacterProvider
  */
 public function testQuoteString(string $testString, string $expectedResult)
 {
     $client = new ResultSetClient($this->prophesize(ConnectionInterface::class)->reveal(), new DateTimeZone('UTC'));
     $this->assertSame($expectedResult, $client->quoteString($testString));
 }