mirror of
https://github.com/stan220/testcontainers-php.git
synced 2026-09-08 19:29:39 +00:00
Update deps and README + some cleanup
This commit is contained in:
@@ -7,7 +7,7 @@ namespace Testcontainers\Tests\Integration\OldTests;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
use Predis\Client;
|
||||
use Predis\Connection\ConnectionException;
|
||||
use Testcontainers\Container\GenericContainer;
|
||||
use Testcontainers\Container\Container;
|
||||
use Testcontainers\Exception\ContainerNotReadyException;
|
||||
use Testcontainers\Wait\WaitForExec;
|
||||
use Testcontainers\Wait\WaitForHealthCheck;
|
||||
@@ -20,9 +20,15 @@ use Testcontainers\Wait\WaitForTcpPortOpen;
|
||||
*/
|
||||
class WaitStrategyTest extends TestCase
|
||||
{
|
||||
//TODO: remove after check
|
||||
protected function setUp(): void
|
||||
{
|
||||
$this->markTestIncomplete();
|
||||
}
|
||||
|
||||
public function testWaitForExec(): void
|
||||
{
|
||||
$container = GenericContainer::make('mysql')
|
||||
$container = Container::make('mysql')
|
||||
->withEnvironment('MYSQL_ROOT_PASSWORD', 'root')
|
||||
->withWait(
|
||||
new WaitForExec([
|
||||
@@ -48,104 +54,104 @@ class WaitStrategyTest extends TestCase
|
||||
$this->assertNotEmpty($version);
|
||||
}
|
||||
|
||||
// public function testWaitForLog(): void
|
||||
// {
|
||||
// $container = GenericContainer::make('redis:6.2.5')
|
||||
// ->withWait(new WaitForLog('Ready to accept connections'));
|
||||
//
|
||||
// $container->run();
|
||||
//
|
||||
// $redis = new Client([
|
||||
// 'scheme' => 'tcp',
|
||||
// 'host' => $container->getAddress(),
|
||||
// 'port' => 6379,
|
||||
// ]);
|
||||
//
|
||||
// $redis->set('foo', 'bar');
|
||||
//
|
||||
// $this->assertEquals('bar', $redis->get('foo'));
|
||||
//
|
||||
// $container->stop();
|
||||
//
|
||||
// $this->expectException(ConnectionException::class);
|
||||
//
|
||||
// $redis->get('foo');
|
||||
//
|
||||
// $container->remove();
|
||||
// }
|
||||
//
|
||||
// public function testWaitForHTTP(): void
|
||||
// {
|
||||
// $container = GenericContainer::make('nginx:alpine')
|
||||
// ->withWait(WaitForHttp::make(80));
|
||||
//
|
||||
// $container->run();
|
||||
//
|
||||
// $ch = curl_init();
|
||||
// curl_setopt($ch, CURLOPT_URL, sprintf('http://%s:%d', $container->getAddress(), 80));
|
||||
// curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
||||
//
|
||||
// $response = (string) curl_exec($ch);
|
||||
//
|
||||
// curl_close($ch);
|
||||
//
|
||||
// $this->assertNotEmpty($response);
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * @dataProvider provideWaitForTcpPortOpen
|
||||
// */
|
||||
// public function testWaitForTcpPortOpen(bool $wait): void
|
||||
// {
|
||||
// $container = GenericContainer::make('nginx:alpine');
|
||||
//
|
||||
// if ($wait) {
|
||||
// $container->withWait(WaitForTcpPortOpen::make(80));
|
||||
// }
|
||||
//
|
||||
// $container->run();
|
||||
//
|
||||
// if ($wait) {
|
||||
// static::assertIsResource(fsockopen($container->getAddress(), 80), 'Failed to connect to container');
|
||||
// return;
|
||||
// }
|
||||
//
|
||||
// $containerId = $container->getId();
|
||||
//
|
||||
// $this->expectExceptionObject(new ContainerNotReadyException($containerId));
|
||||
//
|
||||
// (new WaitForTcpPortOpen(8080))->wait($containerId);
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * @return array<string, array<bool>>
|
||||
// */
|
||||
// public function provideWaitForTcpPortOpen(): array
|
||||
// {
|
||||
// return [
|
||||
// 'Can connect to container' => [true],
|
||||
// 'Cannot connect to container' => [false],
|
||||
// ];
|
||||
// }
|
||||
//
|
||||
// public function testWaitForHealthCheck(): void
|
||||
// {
|
||||
// $container = GenericContainer::make('nginx')
|
||||
// ->withHealthCheckCommand('curl --fail http://localhost')
|
||||
// ->withWait(new WaitForHealthCheck());
|
||||
//
|
||||
// $container->run();
|
||||
//
|
||||
// $ch = curl_init();
|
||||
//
|
||||
// curl_setopt($ch, CURLOPT_URL, sprintf('http://%s:%d', $container->getAddress(), 80));
|
||||
// curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
||||
//
|
||||
// $response = curl_exec($ch);
|
||||
//
|
||||
// $this->assertNotEmpty($response);
|
||||
// $this->assertIsString($response);
|
||||
//
|
||||
// $this->assertStringContainsString('Welcome to nginx!', $response);
|
||||
// }
|
||||
public function testWaitForLog(): void
|
||||
{
|
||||
$container = Container::make('redis:6.2.5')
|
||||
->withWait(new WaitForLog('Ready to accept connections'));
|
||||
|
||||
$container->run();
|
||||
|
||||
$redis = new Client([
|
||||
'scheme' => 'tcp',
|
||||
'host' => $container->getAddress(),
|
||||
'port' => 6379,
|
||||
]);
|
||||
|
||||
$redis->set('foo', 'bar');
|
||||
|
||||
$this->assertEquals('bar', $redis->get('foo'));
|
||||
|
||||
$container->stop();
|
||||
|
||||
$this->expectException(ConnectionException::class);
|
||||
|
||||
$redis->get('foo');
|
||||
|
||||
$container->remove();
|
||||
}
|
||||
|
||||
public function testWaitForHTTP(): void
|
||||
{
|
||||
$container = Container::make('nginx:alpine')
|
||||
->withWait(WaitForHttp::make(80));
|
||||
|
||||
$container->run();
|
||||
|
||||
$ch = curl_init();
|
||||
curl_setopt($ch, CURLOPT_URL, sprintf('http://%s:%d', $container->getAddress(), 80));
|
||||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
||||
|
||||
$response = (string) curl_exec($ch);
|
||||
|
||||
curl_close($ch);
|
||||
|
||||
$this->assertNotEmpty($response);
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider provideWaitForTcpPortOpen
|
||||
*/
|
||||
public function testWaitForTcpPortOpen(bool $wait): void
|
||||
{
|
||||
$container = Container::make('nginx:alpine');
|
||||
|
||||
if ($wait) {
|
||||
$container->withWait(WaitForTcpPortOpen::make(80));
|
||||
}
|
||||
|
||||
$container->run();
|
||||
|
||||
if ($wait) {
|
||||
static::assertIsResource(fsockopen($container->getAddress(), 80), 'Failed to connect to container');
|
||||
return;
|
||||
}
|
||||
|
||||
$containerId = $container->getId();
|
||||
|
||||
$this->expectExceptionObject(new ContainerNotReadyException($containerId));
|
||||
|
||||
(new WaitForTcpPortOpen(8080))->wait($containerId);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array<string, array<bool>>
|
||||
*/
|
||||
public function provideWaitForTcpPortOpen(): array
|
||||
{
|
||||
return [
|
||||
'Can connect to container' => [true],
|
||||
'Cannot connect to container' => [false],
|
||||
];
|
||||
}
|
||||
|
||||
public function testWaitForHealthCheck(): void
|
||||
{
|
||||
$container = Container::make('nginx')
|
||||
->withHealthCheckCommand('curl --fail http://localhost')
|
||||
->withWait(new WaitForHealthCheck());
|
||||
|
||||
$container->run();
|
||||
|
||||
$ch = curl_init();
|
||||
|
||||
curl_setopt($ch, CURLOPT_URL, sprintf('http://%s:%d', $container->getAddress(), 80));
|
||||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
||||
|
||||
$response = curl_exec($ch);
|
||||
|
||||
$this->assertNotEmpty($response);
|
||||
$this->assertIsString($response);
|
||||
|
||||
$this->assertStringContainsString('Welcome to nginx!', $response);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user