&1'); } protected function tearDown(): void { exec('rclone purge temp 2>&1'); } public function testBadConfig(): void { $applicationd = new Application('backup', "1.1.1"); $applicationd->add(new CommandBackup()); $command = $applicationd->find('backup'); $commandTester = new CommandTester($command); $commandTester->execute(['config' => "bad_file"]); $output = $commandTester->getDisplay(); $this->assertStringContainsString('[ERROR] Configuration error:File "bad_file" does not exist.', $output); } public function testNoCommand(): void { $applicationd = new Application('backup', "1.1.1"); $applicationd->add(new CommandBackup()); $command = $applicationd->find('backup'); $commandTester = new CommandTester($command); $this->expectException(\Exception::class); $commandTester->execute([]); $this->fail('Exception was not thrown'); } public function testGoodConfig(): void { $applicationd = new Application('backup', "1.1.1"); $applicationd->add(new CommandBackup()); $command = $applicationd->find('backup'); $commandTester = new CommandTester($command); $commandTester->execute(['config' => "config.example.yml"]); $output = $commandTester->getDisplay(); $this->assertStringContainsString('[OK] Complete ', $output); } public function testNoDestinationFolder(): void { exec('rclone purge temp/destination 2>&1', $output); $applicationd = new Application('backup', "1.1.1"); $applicationd->add(new CommandBackup()); $command = $applicationd->find('backup'); $commandTester = new CommandTester($command); $commandTester->execute(['config' => "config.example.yml"]); $output = $commandTester->getDisplay(); $this->assertStringContainsString('[OK] Complete ', $output); } public function testNoSourceFolder(): void { exec('rclone purge temp/source 2>&1', $output); $applicationd = new Application('backup', "1.1.1"); $applicationd->add(new CommandBackup()); $command = $applicationd->find('backup'); $commandTester = new CommandTester($command); $commandTester->execute(['config' => "config.example.yml"]); $output = $commandTester->getDisplay(); $this->assertStringContainsString('[OK] Complete ', $output); } }