Exemplo n.º 1
0
 public function testGetConnectionDatabaseRequestedCreatesSuccessfully()
 {
     $pdo = $this->createPDO();
     $pdoFactory = $this->createPDOFactory();
     $errorMessage = 'nope!';
     $type = 'db type';
     $server = 'server connection string';
     $username = '******';
     $password = '******';
     $name = 'db name';
     $dsn1 = sprintf(Connection::PDO_DSN_DATABASE, $type, $name, $server);
     $dsn2 = sprintf(Connection::PDO_DSN_NO_DATABASE, $type, $server);
     $pdoFactoryCount = 0;
     $pdoFactory->expects($this->at($pdoFactoryCount++))->method('createPDO')->with($this->equalTo($dsn1), $this->equalTo($username), $this->equalTo($password))->will($this->throwException(new \PDOException($errorMessage)));
     $pdoFactory->expects($this->at($pdoFactoryCount++))->method('createPDO')->with($this->equalTo($dsn2), $this->equalTo($username), $this->equalTo($password))->will($this->returnValue($pdo));
     $pdo->expects($this->once())->method('exec')->with($this->equalTo(sprintf(Connection::SQL_CREATE, $name)));
     $pdo->expects($this->once())->method('query')->with($this->equalTo(sprintf(Connection::SQL_USE, $name)));
     $connection = new Connection($pdoFactory, $type, $server, $username, $password, $name);
     $this->assertFalse($connection->isConnectedToDB());
     $this->assertEquals($pdo, $connection->getConnection());
     $this->assertTrue($connection->isConnectedToDB());
     $this->assertEquals([$errorMessage], $connection->getErrors());
 }