* @copyright Meritoo.pl */ class ConnectionConfigurationTest extends BaseTestCase { /** * Configuration with default values of optional constructor's arguments * * @var ConnectionConfiguration */ private $configurationWithDefaults; /** * Configuration without default values of optional constructor's arguments * * @var ConnectionConfiguration */ private $configurationAnother; public function testConstructorVisibilityAndArguments() { static::assertConstructorVisibilityAndArguments(ConnectionConfiguration::className, OopVisibilityType::IS_PUBLIC, 5, 3); } /** * @param mixed $emptyBaseUrl Empty base url * @dataProvider provideEmptyBaseUrl */ public function testConstructorWithEmptyBaseUrl($emptyBaseUrl) { $this->setExpectedException(InvalidUrlException::className); new ConnectionConfiguration($emptyBaseUrl, '', ''); } /** * @param string $invalidBaseUrl Invalid base url * @dataProvider provideInvalidBaseUrl */ public function testConstructorWithInvalidBaseUrl($invalidBaseUrl) { $this->setExpectedException(InvalidUrlException::className); new ConnectionConfiguration($invalidBaseUrl, '', ''); } public function testConstructor() { static::assertEquals('http://test.com', $this->configurationWithDefaults->getBaseUrl()); static::assertEquals('test1', $this->configurationWithDefaults->getUsername()); static::assertEquals('test2', $this->configurationWithDefaults->getPassword()); static::assertFalse($this->configurationWithDefaults->isDebugModeOn()); static::assertTrue($this->configurationWithDefaults->isVerifySslCertificateOn()); static::assertEquals('http://lets-test.com', $this->configurationAnother->getBaseUrl()); static::assertEquals('test11', $this->configurationAnother->getUsername()); static::assertEquals('test22', $this->configurationAnother->getPassword()); static::assertTrue($this->configurationAnother->isDebugModeOn()); static::assertFalse($this->configurationAnother->isVerifySslCertificateOn()); } public function testGetRemoteControlUrl() { $this->configurationWithDefaults->setRemoteControlUrl('lorem/ipsum'); static::assertEquals('lorem/ipsum', $this->configurationWithDefaults->getRemoteControlUrl()); $this->configurationAnother->setRemoteControlUrl('dolor/sit'); static::assertEquals('dolor/sit', $this->configurationAnother->getRemoteControlUrl()); } public function testGetFullUrl() { $this->configurationWithDefaults->setRemoteControlUrl('lorem/ipsum'); static::assertEquals('http://test.com/lorem/ipsum', $this->configurationWithDefaults->getFullUrl()); } /** * Provides empty base url * * @return array * //return Generator */ public function provideEmptyBaseUrl() { return [ [''], [null], ]; /* yield[ '', ]; yield[ null, ]; */ } /** * Provides invalid base url * * @return array * //return Generator */ public function provideInvalidBaseUrl() { return [ ['lorem'], ['ipsum'], ['htp:/dolor.com'], ]; /* yield[ 'lorem', ]; yield[ 'ipsum', ]; yield[ 'htp:/dolor.com', ]; */ } /** * {@inheritdoc} */ protected function setUp() { parent::setUp(); $this->configurationWithDefaults = new ConnectionConfiguration('http://test.com', 'test1', 'test2'); $this->configurationAnother = new ConnectionConfiguration('http://lets-test.com/', 'test11', 'test22', true, false); } }