* * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ class FrameworkBootstrapTest extends TestCase { /** * Own IP address */ private static $ipAddress = FALSE; /** * Setup test case */ public function setUp() { // Trace message //* NOISY-DEBUG: */ printf('[%s:%d]: CALLED!' . PHP_EOL, __METHOD__, __LINE__); // Call parent method parent::setUp(); // Trace message //* NOISY-DEBUG: */ printf('[%s:%d]: EXIT!' . PHP_EOL, __METHOD__, __LINE__); } /** * Setup test case */ public static function setUpBeforeClass() { // Trace message //* NOISY-DEBUG: */ printf('[%s:%d]: CALLED!' . PHP_EOL, __METHOD__, __LINE__); // Call parent method parent::setUpBeforeClass(); /* * Disable strict naming-convention check in own class loader, because * PHP_Invoker doesn't have namespaces. */ ClassLoader::enableStrictNamingConventionCheck(FALSE); // Lookup own IP address self::$ipAddress = ConsoleTools::acquireSelfIpAddress(); // Trace message //* NOISY-DEBUG: */ printf('[%s:%d]: EXIT!' . PHP_EOL, __METHOD__, __LINE__); } /** * Tests setting a NULL default timezone */ public function testSettingNullDefaultTimezone () { // Will throw this exception $this->expectException(NullPointerException::class); // Test it FrameworkBootstrap::setDefaultTimezone(NULL); } /** * Tests setting a boolean default timezone */ public function testSettingBooleanDefaultTimezone () { // Will throw this exception $this->expectException(InvalidArgumentException::class); // Test it FrameworkBootstrap::setDefaultTimezone(FALSE); } /** * Tests setting a decimal default timezone */ public function testSettingDecimalDefaultTimezone () { // Will throw this exception $this->expectException(InvalidArgumentException::class); // Test it FrameworkBootstrap::setDefaultTimezone(12345); } /** * Tests setting a float default timezone */ public function testSettingFloatDefaultTimezone () { // Will throw this exception $this->expectException(InvalidArgumentException::class); // Test it FrameworkBootstrap::setDefaultTimezone(123.45); } /** * Tests setting an array default timezone */ public function testSettingArrayDefaultTimezone () { // Will throw this exception $this->expectException(InvalidArgumentException::class); // Test it FrameworkBootstrap::setDefaultTimezone(array()); } /** * Tests setting an object default timezone */ public function testSettingObjectDefaultTimezone () { // Will throw this exception $this->expectException(InvalidArgumentException::class); // Test it FrameworkBootstrap::setDefaultTimezone($this); } /** * Tests setting a resource default timezone */ public function testSettingResourceDefaultTimezone () { // Will throw this exception $this->expectException(InvalidArgumentException::class); // Init some resource $resource = fopen(__FILE__, 'r'); // Test it FrameworkBootstrap::setDefaultTimezone($resource); } /** * Tests setting an empty default timezone */ public function testSettingEmptyDefaultTimezone () { // Will throw this exception $this->expectException(InvalidArgumentException::class); // Test it FrameworkBootstrap::setDefaultTimezone(''); } /** * Tests setting invalid timezone */ public function testSettingInvalidDefaultTimezone () { // Expect Notice $this->expectException(Notice::class); // Try to set it FrameworkBootstrap::setDefaultTimezone('!invalid!'); } /** * Tests setting valid timezone */ public function testSettingValidDefaultTimezone () { // Will be true $this->assertTrue(FrameworkBootstrap::setDefaultTimezone('Europe/Berlin')); } /** * Tests if detectServerAddress() is returning what it should for tests. * This will always be 127.0.0.1. */ public function testConfigDetectServerAddress () { // Call it $serverAddress = FrameworkBootstrap::detectServerAddress(); // Should be the same $this->assertEquals(self::$ipAddress, $serverAddress); } /** * Re-tests if detectServerAddress() is returning what it should for tests. * This will always be 127.0.0.1. This call should not invoke * ConsoleTools's method as the configuration entry is already cached. */ public function testConfigDetectServerAddressCached () { // Call it $serverAddress = FrameworkBootstrap::detectServerAddress(); // Should be the same $this->assertEquals(self::$ipAddress, $serverAddress); } }