From 75149ddb1f649344fb2b269dbd0fb4413e81baf2 Mon Sep 17 00:00:00 2001 From: Markus Podar Date: Sun, 12 Jan 2020 18:24:10 +0100 Subject: [PATCH] tests: cover reset and smart-reset options (#875) --- .../ResetAndSmartReset/Models/Simple.php | 14 ++ .../ModelsCommand/ResetAndSmartReset/Test.php | 183 ++++++++++++++++++ 2 files changed, 197 insertions(+) create mode 100644 tests/Console/ModelsCommand/ResetAndSmartReset/Models/Simple.php create mode 100644 tests/Console/ModelsCommand/ResetAndSmartReset/Test.php diff --git a/tests/Console/ModelsCommand/ResetAndSmartReset/Models/Simple.php b/tests/Console/ModelsCommand/ResetAndSmartReset/Models/Simple.php new file mode 100644 index 0000000..666a546 --- /dev/null +++ b/tests/Console/ModelsCommand/ResetAndSmartReset/Models/Simple.php @@ -0,0 +1,14 @@ +set('ide-helper', [ + 'model_locations' => [ + // This is calculated from the base_path() which points to + // vendor/orchestra/testbench-core/laravel + '/../../../../tests/Console/ModelsCommand/ResetAndSmartReset/Models', + ], + ]); + } + + public function testNoReset(): void + { + $actualContent = null; + $mockFilesystem = Mockery::mock(Filesystem::class); + $mockFilesystem + ->shouldReceive('get') + ->andReturn(file_get_contents(__DIR__ . '/Models/Simple.php')) + ->once(); + $mockFilesystem + ->shouldReceive('put') + ->with( + Mockery::any(), + Mockery::capture($actualContent) + ) + ->andReturn(1) // Simulate we wrote _something_ to the file + ->once(); + + $this->instance(Filesystem::class, $mockFilesystem); + + $command = $this->app->make(ModelsCommand::class); + + $tester = $this->runCommand($command, [ + '--write' => true, + ]); + + $this->assertSame(0, $tester->getStatusCode()); + $this->assertEmpty($tester->getDisplay()); + + $expectedContent = <<<'PHP' +assertSame($expectedContent, $actualContent); + } + + public function testReset(): void + { + $actualContent = null; + $mockFilesystem = Mockery::mock(Filesystem::class); + $mockFilesystem + ->shouldReceive('get') + ->andReturn(file_get_contents(__DIR__ . '/Models/Simple.php')) + ->once(); + $mockFilesystem + ->shouldReceive('put') + ->with( + Mockery::any(), + Mockery::capture($actualContent) + ) + ->andReturn(1) // Simulate we wrote _something_ to the file + ->once(); + + $this->instance(Filesystem::class, $mockFilesystem); + + $command = $this->app->make(ModelsCommand::class); + + $tester = $this->runCommand($command, [ + '--write' => true, + '--reset' => true, + ]); + + $this->assertSame(0, $tester->getStatusCode()); + $this->assertEmpty($tester->getDisplay()); + + $expectedContent = <<<'PHP' +assertSame($expectedContent, $actualContent); + } + + public function testSmartReset(): void + { + $actualContent = null; + $mockFilesystem = Mockery::mock(Filesystem::class); + $mockFilesystem + ->shouldReceive('get') + ->andReturn(file_get_contents(__DIR__ . '/Models/Simple.php')) + ->once(); + $mockFilesystem + ->shouldReceive('put') + ->with( + Mockery::any(), + Mockery::capture($actualContent) + ) + ->andReturn(1) // Simulate we wrote _something_ to the file + ->once(); + + $this->instance(Filesystem::class, $mockFilesystem); + + $command = $this->app->make(ModelsCommand::class); + + $tester = $this->runCommand($command, [ + '--write' => true, + '--smart-reset' => true, + ]); + + $this->assertSame(0, $tester->getStatusCode()); + $this->assertEmpty($tester->getDisplay()); + + $expectedContent = <<<'PHP' +assertSame($expectedContent, $actualContent); + } +}