Skip to content

Commit

Permalink
Extract helper method to set up the mocks
Browse files Browse the repository at this point in the history
  • Loading branch information
caendesilva committed Sep 9, 2024
1 parent c5594a9 commit 6f21293
Showing 1 changed file with 14 additions and 10 deletions.
24 changes: 14 additions & 10 deletions packages/framework/tests/Unit/BuildTaskServiceUnitTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -207,47 +207,47 @@ public function testCanRunPostBuildTasksWithTasks()

public function testRunPreBuildTasksCallsHandleMethods()
{
$task = Mockery::mock(TestPreBuildTask::class)->makePartial()->shouldReceive('handle')->once()->getMock();
$task = $this->setupMock(TestPreBuildTask::class, 'handle')->getMock();

$this->service->registerTask($task);
$this->service->runPreBuildTasks();
}

public function testRunPostBuildTasksCallsHandleMethods()
{
$task = Mockery::mock(TestPostBuildTask::class)->makePartial()->shouldReceive('handle')->once()->getMock();
$task = $this->setupMock(TestPostBuildTask::class, 'handle')->getMock();

$this->service->registerTask($task);
$this->service->runPostBuildTasks();
}

public function testRunPreBuildTasksCallsRunMethods()
{
$task = Mockery::mock(TestPreBuildTask::class)->makePartial()->shouldReceive('run')->once()->getMock();
$task = $this->setupMock(TestPreBuildTask::class, 'run')->getMock();

$this->service->registerTask($task);
$this->service->runPreBuildTasks();
}

public function testRunPostBuildTasksCallsRunMethods()
{
$task = Mockery::mock(TestPostBuildTask::class)->makePartial()->shouldReceive('run')->once()->getMock();
$task = $this->setupMock(TestPostBuildTask::class, 'run')->getMock();

$this->service->registerTask($task);
$this->service->runPostBuildTasks();
}

public function testRunPreBuildTasksCallsRunMethodsWithNullWhenServiceHasNoOutput()
{
$task = Mockery::mock(TestPreBuildTask::class)->makePartial()->shouldReceive('run')->with(null)->once()->getMock();
$task = $this->setupMock(TestPreBuildTask::class, 'run')->with(null)->once()->getMock();

$this->service->registerTask($task);
$this->service->runPreBuildTasks();
}

public function testRunPostBuildTasksCallsRunMethodsWithNullWhenServiceHasNoOutput()
{
$task = Mockery::mock(TestPostBuildTask::class)->makePartial()->shouldReceive('run')->with(null)->once()->getMock();
$task = $this->setupMock(TestPostBuildTask::class, 'run')->with(null)->once()->getMock();

$this->service->registerTask($task);
$this->service->runPostBuildTasks();
Expand All @@ -256,7 +256,7 @@ public function testRunPostBuildTasksCallsRunMethodsWithNullWhenServiceHasNoOutp
public function testRunPreBuildTasksCallsRunMethodsWithOutputWhenServiceHasOutput()
{
$output = Mockery::mock(OutputStyle::class)->makePartial();
$task = Mockery::mock(TestPreBuildTask::class)->makePartial()->shouldReceive('run')->with($output)->once()->getMock();
$task = $this->setupMock(TestPreBuildTask::class, 'run')->with($output)->once()->getMock();

$this->service->setOutput($output);
$this->service->registerTask($task);
Expand All @@ -266,7 +266,7 @@ public function testRunPreBuildTasksCallsRunMethodsWithOutputWhenServiceHasOutpu
public function testRunPostBuildTasksCallsRunMethodsWithOutputWhenServiceHasOutput()
{
$output = Mockery::mock(OutputStyle::class)->makePartial();
$task = Mockery::mock(TestPostBuildTask::class)->makePartial()->shouldReceive('run')->with($output)->once()->getMock();
$task = $this->setupMock(TestPostBuildTask::class, 'run')->with($output)->once()->getMock();

$this->service->setOutput($output);
$this->service->registerTask($task);
Expand Down Expand Up @@ -319,8 +319,7 @@ protected function createService(): BuildTaskService

protected function mockKernelFilesystem(array $files = []): void
{
$filesystem = Mockery::mock(Filesystem::class, [HydeKernel::getInstance()])
->makePartial()->shouldReceive('smartGlob')->once()
$filesystem = $this->setupMock(Filesystem::class, 'smartGlob')
->with('app/Actions/*BuildTask.php', 0)
->andReturn(collect($files))->getMock();

Expand All @@ -332,6 +331,11 @@ protected function resetKernelInstance(): void
{
HydeKernel::setInstance(new HydeKernel());
}

protected function setupMock(string $class, string $method): Mockery\ExpectationInterface|Mockery\Expectation|Mockery\HigherOrderMessage
{
return Mockery::mock($class)->makePartial()->shouldReceive($method)->once();
}
}

class InstantiableTestBuildTask extends BuildTask
Expand Down

0 comments on commit 6f21293

Please sign in to comment.