|
| 1 | +<?php |
| 2 | + |
| 3 | +namespace Studio\Totem\Tests\Feature; |
| 4 | + |
| 5 | +use Illuminate\Http\UploadedFile; |
| 6 | +use Illuminate\Support\Facades\Event; |
| 7 | +use Studio\Totem\Events\Created; |
| 8 | +use Studio\Totem\Events\Creating; |
| 9 | +use Studio\Totem\Task; |
| 10 | +use Studio\Totem\Tests\TestCase; |
| 11 | + |
| 12 | +class ImportTasksTest extends TestCase |
| 13 | +{ |
| 14 | + /** @test */ |
| 15 | + public function it_imports_tasks_from_a_json_file() |
| 16 | + { |
| 17 | + Event::fake(); |
| 18 | + |
| 19 | + $this->assertEquals(0, Task::count()); |
| 20 | + |
| 21 | + $this->signIn() |
| 22 | + ->post(route('totem.tasks.import'), [ |
| 23 | + 'tasks' => new UploadedFile(realpath(__DIR__.'/../Fixtures/tasks.json'), 'tasks.json', 'json', false, true), |
| 24 | + ])->assertSuccessful(); |
| 25 | + |
| 26 | + $this->assertEquals(5, Task::count()); |
| 27 | + |
| 28 | + collect(json_decode(file_get_contents(realpath(__DIR__.'/../Fixtures/tasks.json')))) |
| 29 | + ->each(function ($jsonTask) { |
| 30 | + $task = Task::find($jsonTask->id); |
| 31 | + |
| 32 | + $this->assertEquals($jsonTask->description, $task->description); |
| 33 | + $this->assertEquals($jsonTask->command, $task->command); |
| 34 | + $this->assertEquals($jsonTask->parameters, $task->parameters); |
| 35 | + $this->assertEquals($jsonTask->expression, $task->expression); |
| 36 | + $this->assertEquals($jsonTask->timezone, $task->timezone); |
| 37 | + $this->assertEquals($jsonTask->is_active, $task->is_active); |
| 38 | + $this->assertEquals($jsonTask->dont_overlap, $task->dont_overlap); |
| 39 | + $this->assertEquals($jsonTask->run_in_maintenance, $task->run_in_maintenance); |
| 40 | + $this->assertEquals($jsonTask->notification_email_address, $task->notification_email_address); |
| 41 | + $this->assertEquals($jsonTask->notification_phone_number, $task->notification_phone_number); |
| 42 | + $this->assertEquals($jsonTask->notification_slack_webhook, $task->notification_slack_webhook); |
| 43 | + $this->assertEquals($jsonTask->auto_cleanup_num, $task->auto_cleanup_num); |
| 44 | + $this->assertEquals($jsonTask->auto_cleanup_type, $task->auto_cleanup_type); |
| 45 | + $this->assertEquals($jsonTask->run_on_one_server, $task->run_on_one_server); |
| 46 | + $this->assertEquals($jsonTask->run_in_background, $task->run_in_background); |
| 47 | + $this->assertEquals($jsonTask->activated, $task->activated); |
| 48 | + }); |
| 49 | + |
| 50 | + Event::assertDispatched(Creating::class, 5); |
| 51 | + Event::assertDispatched(Created::class, 5); |
| 52 | + } |
| 53 | +} |
0 commit comments