Files
wiosna-dev_limesurvey-api-c…/tests/Meritoo/LimeSurvey/Test/ApiClient/Configuration/ConnectionConfigurationTest.php

201 lines
6.7 KiB
PHP

<?php
/**
* (c) Meritoo.pl, http://www.meritoo.pl
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Meritoo\LimeSurvey\Test\ApiClient\Configuration;
use Generator;
use Meritoo\Common\Exception\Regex\InvalidUrlException;
use Meritoo\Common\Test\Base\BaseTestCase;
use Meritoo\Common\Type\OopVisibilityType;
use Meritoo\LimeSurvey\ApiClient\Configuration\ConnectionConfiguration;
/**
* Test case of the configuration used while connecting to LimeSurvey's API
*
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @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::class, OopVisibilityType::IS_PUBLIC, 5, 3);
}
/**
* @param mixed $emptyBaseUrl Empty base url
* @dataProvider provideEmptyBaseUrl
*/
public function testConstructorWithEmptyBaseUrl($emptyBaseUrl)
{
$this->expectException(InvalidUrlException::class);
new ConnectionConfiguration($emptyBaseUrl, '', '');
}
/**
* @param string $invalidBaseUrl Invalid base url
* @dataProvider provideInvalidBaseUrl
*/
public function testConstructorWithInvalidBaseUrl($invalidBaseUrl)
{
$this->expectException(InvalidUrlException::class);
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 testSetBaseUrl()
{
$this->configurationWithDefaults->setBaseUrl('http://lorem.ipsum');
static::assertEquals('http://lorem.ipsum', $this->configurationWithDefaults->getBaseUrl());
$this->configurationWithDefaults->setBaseUrl('http://lorem.ipsum/');
static::assertEquals('http://lorem.ipsum', $this->configurationWithDefaults->getBaseUrl());
}
public function testSetRemoteControlUrl()
{
$this->configurationWithDefaults->setRemoteControlUrl('/lorem/ipsum');
static::assertEquals('/lorem/ipsum', $this->configurationWithDefaults->getRemoteControlUrl());
}
public function testSetUsername()
{
$this->configurationWithDefaults->setUsername('lorem');
static::assertEquals('lorem', $this->configurationWithDefaults->getUsername());
}
public function testSetPassword()
{
$this->configurationWithDefaults->setPassword('ipsum');
static::assertEquals('ipsum', $this->configurationWithDefaults->getPassword());
}
public function testSetDebugMode()
{
$this->configurationWithDefaults->setDebugMode();
$this->configurationAnother->setDebugMode();
static::assertFalse($this->configurationWithDefaults->isDebugModeOn());
static::assertFalse($this->configurationAnother->isDebugModeOn());
$this->configurationWithDefaults->setDebugMode(false);
$this->configurationAnother->setDebugMode(false);
static::assertFalse($this->configurationWithDefaults->isDebugModeOn());
static::assertFalse($this->configurationAnother->isDebugModeOn());
$this->configurationWithDefaults->setDebugMode(true);
$this->configurationAnother->setDebugMode(true);
static::assertTrue($this->configurationWithDefaults->isDebugModeOn());
static::assertTrue($this->configurationAnother->isDebugModeOn());
}
public function testSetVerifySslCertificate()
{
$this->configurationWithDefaults->setVerifySslCertificate();
$this->configurationAnother->setVerifySslCertificate();
static::assertTrue($this->configurationWithDefaults->isVerifySslCertificateOn());
static::assertTrue($this->configurationAnother->isVerifySslCertificateOn());
$this->configurationWithDefaults->setVerifySslCertificate(false);
$this->configurationAnother->setVerifySslCertificate(false);
static::assertFalse($this->configurationWithDefaults->isVerifySslCertificateOn());
static::assertFalse($this->configurationAnother->isVerifySslCertificateOn());
$this->configurationWithDefaults->setVerifySslCertificate(true);
$this->configurationAnother->setVerifySslCertificate(true);
static::assertTrue($this->configurationWithDefaults->isVerifySslCertificateOn());
static::assertTrue($this->configurationAnother->isVerifySslCertificateOn());
}
public function testGetFullUrl()
{
$this->configurationWithDefaults->setRemoteControlUrl('lorem/ipsum');
static::assertEquals('http://test.com/lorem/ipsum', $this->configurationWithDefaults->getFullUrl());
}
/**
* Provides empty base url
*
* @return Generator
*/
public function provideEmptyBaseUrl()
{
yield[
'',
];
yield[
null,
];
}
/**
* Provides invalid base url
*
* @return Generator
*/
public function provideInvalidBaseUrl()
{
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);
}
}