Skip to content

Commit

Permalink
Test, that DIContainer is properly assembling factory objects
Browse files Browse the repository at this point in the history
  • Loading branch information
aik099 committed Mar 15, 2024
1 parent 0837f60 commit 4dac104
Showing 1 changed file with 73 additions and 10 deletions.
83 changes: 73 additions & 10 deletions tests/aik099/PHPUnit/Integration/DIContainerTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,20 +11,32 @@
namespace tests\aik099\PHPUnit\Integration;


use aik099\PHPUnit\APIClient\APIClientFactory;
use aik099\PHPUnit\Application;
use aik099\PHPUnit\BrowserConfiguration\BrowserConfiguration;
use aik099\PHPUnit\BrowserConfiguration\BrowserConfigurationFactory;
use aik099\PHPUnit\BrowserConfiguration\BrowserStackBrowserConfiguration;
use aik099\PHPUnit\BrowserConfiguration\SauceLabsBrowserConfiguration;
use aik099\PHPUnit\BrowserTestCase;
use aik099\PHPUnit\DIContainer;
use tests\aik099\PHPUnit\AbstractTestCase;
use aik099\PHPUnit\TestSuite\RegularTestSuite;
use aik099\PHPUnit\TestSuite\BrowserTestSuite;
use aik099\PHPUnit\APIClient\APIClientFactory;
use aik099\PHPUnit\TestSuite\TestSuiteFactory;
use aik099\PHPUnit\MinkDriver\DriverFactoryRegistry;
use aik099\PHPUnit\MinkDriver\GoutteDriverFactory;
use aik099\PHPUnit\MinkDriver\SahiDriverFactory;
use aik099\PHPUnit\MinkDriver\Selenium2DriverFactory;
use aik099\PHPUnit\MinkDriver\ZombieDriverFactory;
use aik099\PHPUnit\RemoteCoverage\RemoteCoverageHelper;
use aik099\PHPUnit\RemoteCoverage\RemoteUrl;
use aik099\PHPUnit\Session\SessionStrategyManager;
use aik099\PHPUnit\Session\SessionStrategyFactory;
use aik099\PHPUnit\Session\ISessionStrategyFactory;
use aik099\PHPUnit\Session\IsolatedSessionStrategy;
use aik099\PHPUnit\Session\SessionFactory;
use aik099\PHPUnit\RemoteCoverage\RemoteCoverageHelper;
use aik099\PHPUnit\BrowserConfiguration\BrowserConfigurationFactory;
use aik099\PHPUnit\MinkDriver\DriverFactoryRegistry;
use aik099\PHPUnit\Session\SessionStrategyFactory;
use aik099\PHPUnit\Session\SessionStrategyManager;
use aik099\PHPUnit\Session\SharedSessionStrategy;
use aik099\PHPUnit\TestSuite\BrowserTestSuite;
use aik099\PHPUnit\TestSuite\RegularTestSuite;
use aik099\PHPUnit\TestSuite\TestSuiteFactory;
use Mockery as m;
use tests\aik099\PHPUnit\AbstractTestCase;

class DIContainerTest extends AbstractTestCase
{
Expand Down Expand Up @@ -84,4 +96,55 @@ public static function serviceDefinitionsDataProvider()
);
}

public function testSessionStrategyFactory()
{
/** @var SessionStrategyFactory $session_strategy_factory */
$session_strategy_factory = $this->_container['session_strategy_factory'];

$this->assertInstanceOf(
IsolatedSessionStrategy::class,
$session_strategy_factory->createStrategy(ISessionStrategyFactory::TYPE_ISOLATED)
);

$this->assertInstanceOf(
SharedSessionStrategy::class,
$session_strategy_factory->createStrategy(ISessionStrategyFactory::TYPE_SHARED)
);
}

public function testDriverFactoryRegistry()
{
/** @var DriverFactoryRegistry $driver_factory_registry */
$driver_factory_registry = $this->_container['driver_factory_registry'];

$this->assertInstanceOf(Selenium2DriverFactory::class, $driver_factory_registry->get('selenium2'));
$this->assertInstanceOf(SahiDriverFactory::class, $driver_factory_registry->get('sahi'));
$this->assertInstanceOf(GoutteDriverFactory::class, $driver_factory_registry->get('goutte'));
$this->assertInstanceOf(ZombieDriverFactory::class, $driver_factory_registry->get('zombie'));
}

public function testBrowserConfigurationFactory()
{
$test_case = m::mock(BrowserTestCase::class);
$test_case->shouldReceive('getBrowserAliases')->andReturn(array());

/** @var BrowserConfigurationFactory $browser_configuration_factory */
$browser_configuration_factory = $this->_container['browser_configuration_factory'];

$this->assertInstanceOf(
BrowserConfiguration::class,
$browser_configuration_factory->createBrowserConfiguration(array('type' => 'default'), $test_case)
);

$this->assertInstanceOf(
BrowserStackBrowserConfiguration::class,
$browser_configuration_factory->createBrowserConfiguration(array('type' => 'browserstack'), $test_case)
);

$this->assertInstanceOf(
SauceLabsBrowserConfiguration::class,
$browser_configuration_factory->createBrowserConfiguration(array('type' => 'saucelabs'), $test_case)
);
}

}

0 comments on commit 4dac104

Please sign in to comment.