public function test_Should_UpdateExistingMailSettings() { vfsStream::newFile('.env')->at($this->rootDir); $dotenvReader = new DotenvReader(new LaravelFilesystem($this->app['files']), vfsStream::url('rootDir/.env')); $dotenvWriter = new DotenvWriter(new LaravelFilesystem($this->app['files']), vfsStream::url('rootDir/.env')); $configMailSettingRepository = new ConfigMailSetting($dotenvReader, $dotenvWriter); $configMailSettingRepository->update(['driver' => 'smtp', 'from_address' => '*****@*****.**', 'from_name' => 'from_name', 'smtp_host' => 'localhost', 'smtp_port' => 587, 'smtp_encryption' => 'tls', 'smtp_username' => '*****@*****.**', 'smtp_password' => 'password', 'sendmail_path' => '/usr/sbin/sendmail -bs']); $this->assertEquals('smtp', $dotenvReader->getConfig('MAIL_DRIVER')); $this->assertEquals('*****@*****.**', $dotenvReader->getConfig('MAIL_FROM_ADDRESS')); $this->assertEquals('from_name', $dotenvReader->getConfig('MAIL_FROM_NAME')); $this->assertEquals('localhost', $dotenvReader->getConfig('MAIL_HOST')); $this->assertEquals(587, $dotenvReader->getConfig('MAIL_PORT')); $this->assertEquals('tls', $dotenvReader->getConfig('MAIL_ENCRYPTION')); $this->assertEquals('*****@*****.**', $dotenvReader->getConfig('MAIL_USERNAME')); $this->assertEquals('password', $dotenvReader->getConfig('MAIL_PASSWORD')); $this->assertEquals('/usr/sbin/sendmail -bs', $dotenvReader->getConfig('MAIL_SENDMAIL')); }