url(); foreach(["confUnreadable","confGood", "confCorrupt", "confNotArray"] as $file) { touch($vfs."/".$file); } chmod($vfs."/confUnreadable", 0000); $validConf = <<<'VALID_CONFIGURATION_FILE' "xx" ); VALID_CONFIGURATION_FILE; file_put_contents($vfs."/confGood",$validConf); file_put_contents($vfs."/confNotArray", "assertInstanceOf(Conf::class, new Conf()); } /** * @depends testConstruct */ function testImportArray() { $arr = ['lang' => "xx"]; $conf = new Conf(); $conf->import($arr); $this->assertEquals("xx", $conf->lang); } /** * @depends testImportArray */ function testImportFile() { $conf = new Conf(); $conf->importFile(self::$vfs."/confGood"); $this->assertEquals("xx", $conf->lang); $conf = new Conf(self::$vfs."/confGood"); $this->assertEquals("xx", $conf->lang); } /** * @depends testImportFile */ function testImportFileMissing() { $this->assertException("fileMissing", "Conf"); $conf = new Conf(self::$vfs."/confMissing"); } /** * @depends testImportFile */ function testImportFileUnreadable() { $this->assertException("fileUnreadable", "Conf"); $conf = new Conf(self::$vfs."/confUnreadable"); } /** * @depends testImportFile */ function testImportFileNotAnArray() { $this->assertException("fileCorrupt", "Conf"); $conf = new Conf(self::$vfs."/confNotArray"); } /** * @depends testImportFile */ function testImportFileNotPHP() { $this->assertException("fileCorrupt", "Conf"); // this should not print the output of the non-PHP file $conf = new Conf(self::$vfs."/confNotPHP"); } /** * @depends testImportFile */ function testImportFileCorrupt() { $this->assertException("fileCorrupt", "Conf"); // this should not print the output of the non-PHP file $conf = new Conf(self::$vfs."/confCorrupt"); } }