/** * @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')); }
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(); } } }