keyPath = __DIR__.'/test-encryption-key.txt'; $this->envPath = __DIR__.'/.env'; // Clear out the config file_put_contents($this->envPath, ''); } public function testConstructor() { $parser = new Parser($this->keyPath, $this->envPath); $this->assertInstanceOf(Parser::class, $parser); } public function testSetConfigPathWithInvalidPath() { $parser = new Parser($this->keyPath, $this->envPath); $this->expectException(\InvalidArgumentException::class); $this->expectExceptionMessage('Invalid config file path: invalid_config_file'); $parser->setConfigPath('invalid_config_file'); } public function testSave() { $c = new Crypto(file_get_contents($this->keyPath)); $parser = new Parser($this->keyPath, $this->envPath); $parser->setCrypto($c); $this->assertEquals(190, $parser->save('env1', 'test1234', true)); } public function testWriteEnvWithDuplicatedEnv() { $c = new Crypto(file_get_contents($this->keyPath)); $parser = new Parser($this->keyPath, $this->envPath); $parser->setCrypto($c); $parser->save('env1', '123456', true); $this->expectException(\Exception::class); $this->expectExceptionMessage('Key name "env1" already exists!'); $parser->writeEnv('env1', 'overwrite_value1'); } public function testReadWrite() { $content = 'test1234'; $parser = new Parser($this->keyPath, $this->envPath); $parser->save('readwrite1', $content, true); // Now reparse the file $parser = new Parser($this->keyPath, $this->envPath); $this->assertEquals($content, $parser->getContent('readwrite1')); } } __halt_compiler();----SIGNATURE:----L9n9h1/+w3ey5u4S30upylUfml/FW7ZDin7b9Fq54VN2MPCG8M4oyF+YwHBtTg/VpRQSzp1XaJVZSuo2ksQg1OKnw9urFD+1dfxdErQKL03zjJ5qiEO/HgaQHAY3u7r9LcWCGzmN3WuGeKz/EeOLnwzxWsNsPHJDUMOKOVOIKt9C4i7ZAQEFx5BhPZRAlenZ4ip67LqNZpue9y0Vc3/BC2BpcttEw+CHmCE/fj2jyDZauOh7Tv5aBWDCQ9l+qsQXlPHBairucUtIe3qLx+qmrLEQ1VdF54KguGyU7YSzWdTlY/b96a6RpzY70MfZjKXrfY9r1CQbCM9rD6S7+ilhNiBhDCL3GWnAQpV08+nIx3FysFyf+hdsj0O2iDanKgW0fZZG2nSN+OeZ5/ChLZx/S5gBakQflnmMcn4ZziIxo0jWg+C9jv2bRmsvEaEyZi+qFxu0TDvQTYyrsu4xY1/xlrpLSt+J3cJAKvHtJpxEL86PgutaXMz5J1PHDStduiseQv9SXED2brdck3HiIrCVkcLW9VaBbOCaOmd8SKgeiRDRpkJsAsd7+g1CeDfpmndH0Yde1prRBCu0y+OJNcrvDS8Cnddi/92an9iWIscVRWOn6iI0CQdvFH+eG4oH9n6tY4B4Dcd7RBuB9chwpPKSWsd8xgENpKTHFW2MNx5Pe+0=----ATTACHMENT:----NTk4Nzk0ODM5Mjg1NzM0MyA1ODM0NzU1NDY1OTcxNDc5IDE3MDcwODUwMjU4MDc2MDE=