Ejemplo n.º 1
0
 /**
  * @covers ByJG\AnyDataset\ConnectionManagement::setDbConnectionString
  */
 public function testSuccess()
 {
     $conn = new ConnectionManagement('mysql://*****:*****@host-10.com:3306/database?extraparam=10');
     $this->assertEquals('mysql', $conn->getDriver());
     $this->assertEquals('root', $conn->getUsername());
     $this->assertEquals('password', $conn->getPassword());
     $this->assertEquals('host-10.com', $conn->getServer());
     $this->assertEquals('3306', $conn->getPort());
     $this->assertEquals('database', $conn->getDatabase());
     $this->assertEquals('10', $conn->getExtraParam('extraparam'));
     $conn = new ConnectionManagement('mysql://ro@11!%&*(ot:pass@(*&!$$word@host-10.com:3306/database?extraparam=10');
     $this->assertEquals('mysql', $conn->getDriver());
     $this->assertEquals('ro@11!%&*(ot', $conn->getUsername());
     $this->assertEquals('pass@(*&!$$word', $conn->getPassword());
     $this->assertEquals('host-10.com', $conn->getServer());
     $this->assertEquals('3306', $conn->getPort());
     $this->assertEquals('database', $conn->getDatabase());
     $this->assertEquals('10', $conn->getExtraParam('extraparam'));
     $conn = new ConnectionManagement('mysql://root@host-10.com:3306/database?extraparam=10');
     $this->assertEquals('mysql', $conn->getDriver());
     $this->assertEquals('root', $conn->getUsername());
     $this->assertEquals('', $conn->getPassword());
     $this->assertEquals('host-10.com', $conn->getServer());
     $this->assertEquals('3306', $conn->getPort());
     $this->assertEquals('database', $conn->getDatabase());
     $this->assertEquals('10', $conn->getExtraParam('extraparam'));
     $conn = new ConnectionManagement('mysql://host-10.com:3306/database?extraparam=10');
     $this->assertEquals('mysql', $conn->getDriver());
     $this->assertEquals('', $conn->getUsername());
     $this->assertEquals('', $conn->getPassword());
     $this->assertEquals('host-10.com', $conn->getServer());
     $this->assertEquals('3306', $conn->getPort());
     $this->assertEquals('database', $conn->getDatabase());
     $this->assertEquals('10', $conn->getExtraParam('extraparam'));
     $conn = new ConnectionManagement('mysql://host-10.com:3306/database');
     $this->assertEquals('mysql', $conn->getDriver());
     $this->assertEquals('', $conn->getUsername());
     $this->assertEquals('', $conn->getPassword());
     $this->assertEquals('host-10.com', $conn->getServer());
     $this->assertEquals('3306', $conn->getPort());
     $this->assertEquals('database', $conn->getDatabase());
     $this->assertEquals('', $conn->getExtraParam('extraparam'));
     $conn = new ConnectionManagement('mysql://host-10.com');
     $this->assertEquals('mysql', $conn->getDriver());
     $this->assertEquals('', $conn->getUsername());
     $this->assertEquals('', $conn->getPassword());
     $this->assertEquals('host-10.com', $conn->getServer());
     $this->assertEquals('', $conn->getPort());
     $this->assertEquals('', $conn->getDatabase());
     $this->assertEquals('', $conn->getExtraParam('extraparam'));
     $conn = new ConnectionManagement('mysql://host-10.com:3306');
     $this->assertEquals('mysql', $conn->getDriver());
     $this->assertEquals('', $conn->getUsername());
     $this->assertEquals('', $conn->getPassword());
     $this->assertEquals('host-10.com', $conn->getServer());
     $this->assertEquals('3306', $conn->getPort());
     $this->assertEquals('', $conn->getDatabase());
     $this->assertEquals('', $conn->getExtraParam('extraparam'));
     $conn = new ConnectionManagement('mysql://host-10.com/database');
     $this->assertEquals('mysql', $conn->getDriver());
     $this->assertEquals('', $conn->getUsername());
     $this->assertEquals('', $conn->getPassword());
     $this->assertEquals('host-10.com', $conn->getServer());
     $this->assertEquals('', $conn->getPort());
     $this->assertEquals('database', $conn->getDatabase());
     $this->assertEquals('', $conn->getExtraParam('extraparam'));
     $conn = new ConnectionManagement('mysql://host-10.com:3306/database');
     $this->assertEquals('mysql', $conn->getDriver());
     $this->assertEquals('', $conn->getUsername());
     $this->assertEquals('', $conn->getPassword());
     $this->assertEquals('host-10.com', $conn->getServer());
     $this->assertEquals('3306', $conn->getPort());
     $this->assertEquals('database', $conn->getDatabase());
     $this->assertEquals('', $conn->getExtraParam('extraparam'));
     $conn = new ConnectionManagement('mysql://host-10.com?extraparam=10');
     $this->assertEquals('mysql', $conn->getDriver());
     $this->assertEquals('', $conn->getUsername());
     $this->assertEquals('', $conn->getPassword());
     $this->assertEquals('host-10.com', $conn->getServer());
     $this->assertEquals('', $conn->getPort());
     $this->assertEquals('', $conn->getDatabase());
     $this->assertEquals('10', $conn->getExtraParam('extraparam'));
     $conn = new ConnectionManagement('mysql://host-10.com:3306?extraparam=10');
     $this->assertEquals('mysql', $conn->getDriver());
     $this->assertEquals('', $conn->getUsername());
     $this->assertEquals('', $conn->getPassword());
     $this->assertEquals('host-10.com', $conn->getServer());
     $this->assertEquals('3306', $conn->getPort());
     $this->assertEquals('', $conn->getDatabase());
     $this->assertEquals('10', $conn->getExtraParam('extraparam'));
     $conn = new ConnectionManagement('mysql://host-10.com:3306?extraparam=10&other=20');
     $this->assertEquals('mysql', $conn->getDriver());
     $this->assertEquals('', $conn->getUsername());
     $this->assertEquals('', $conn->getPassword());
     $this->assertEquals('host-10.com', $conn->getServer());
     $this->assertEquals('3306', $conn->getPort());
     $this->assertEquals('', $conn->getDatabase());
     $this->assertEquals('10', $conn->getExtraParam('extraparam'));
     $this->assertEquals('20', $conn->getExtraParam('other'));
 }
Ejemplo n.º 2
0
 public function broadcast()
 {
     // // Schedule another broadcast period
     // $this->scheduleBroadcast();
     // If there are clients connected ...
     if (count($this->getClients()) > 0) {
         $burstint = $this->welcome->getOption("burstint");
         // and there is ample data to broadcast ...
         if (strlen($this->pool) >= $burstint) {
             // fetch the data associated with this broadcast ...
             $buf = $this->getPool($burstint);
             // and process the data for each client
             foreach ($this->getClients() as $client) {
                 // If the client specified that it wants metadata, append the
                 // associated metadata to the data
                 $data = $buf . ($client->getOption("metadata") ? $this->meta : null);
                 // If the client is still waiting for preload data ...
                 if ($client->getOption("preload") >= 0) {
                     // and the client still has insufficient data for the configured
                     // preload amount ...
                     if ($client->getOption("preload") > 0) {
                         // append this broadcast to the preload buffer for this client
                         $client->setOption("preloadbuf", $client->getOption("preloadbuf") . $data);
                     } else {
                         // If the client's preload is fully prepared, send it and clear
                         // the preload buffer
                         $client->send($client->getOption("preloadbuf"), false);
                         $client->setOption("preloadbuf", false);
                     }
                     // Decrement the preload quantity
                     $client->setOption("preload", $client->getOption("preload") - 1);
                 }
                 // If the client is not waiting for preload data, send the data in a
                 // regular fashion
                 if ($client->getOption("preload") < 0) {
                     $client->send($data, false);
                 }
             }
         }
     } else {
         if (count(ConnectionManagement::getConnections()) < 1) {
             // Clear the pool if no clients are connected
             $this->getPool();
         }
     }
 }