public function testByNameNullValue()
{
// Create the table
$query = "CREATE TABLE {$this->tableNamePrefix} (key timeuuid PRIMARY KEY, value_int int, value_boolean boolean, value_text text)";
$this->session->execute(new SimpleStatement($query));
// Create the insert query and insert valid named parameters
$query = "INSERT INTO {$this->tableNamePrefix} (key, value_int, value_boolean, value_text) VALUES (?, ?, ?, ?)";
$values = array("key" => new Timeuuid(), "value_int" => null, "value_boolean" => null, "value_text" => "Null values should exist for value_int and value_boolean");
$statement = new SimpleStatement($query);
$options = new ExecutionOptions(array("arguments" => $values));
$this->session->execute($statement, $options);
// Select and assert the values
$query = "SELECT * FROM {$this->tableNamePrefix}";
$statement = new SimpleStatement($query);
$rows = $this->session->execute($statement);
$this->assertCount(1, $rows);
$row = $rows->first();
$this->assertEquals($values, $row);
$this->assertTrue($values == $row);
$this->assertEquals($values["key"], $row["key"]);
$this->assertEquals($values["value_int"], $row["value_int"]);
$this->assertEquals($values["value_boolean"], $row["value_boolean"]);
$this->assertEquals($values["value_text"], $row["value_text"]);
$this->assertTrue($values["key"] == $row["key"]);
$this->assertTrue($values["value_int"] == $row["value_int"]);
$this->assertTrue($values["value_boolean"] == $row["value_boolean"]);
$this->assertTrue($values["value_text"] == $row["value_text"]);
$this->assertNull($row["value_int"]);
$this->assertNull($row["value_boolean"]);
}