. */ declare(strict_types=1); namespace Tests\Feature\Controllers\Import; use FireflyIII\Import\Prerequisites\FilePrerequisites; use Illuminate\Support\MessageBag; use Log; use Tests\TestCase; /** * Class AccountControllerTest * * @SuppressWarnings(PHPMD.TooManyPublicMethods) * @SuppressWarnings(PHPMD.ExcessiveMethodLength) * @SuppressWarnings(PHPMD.CouplingBetweenObjects) */ class PrerequisitesControllerTest extends TestCase { /** * */ public function setUp() { parent::setUp(); Log::debug(sprintf('Now in %s.', get_class($this))); } /** * @covers \FireflyIII\Http\Controllers\Import\PrerequisitesController::__construct * @covers \FireflyIII\Http\Controllers\Import\PrerequisitesController::index */ public function testIndex() { $object = $this->mock(FilePrerequisites::class); $object->shouldReceive('setUser'); $object->shouldReceive('hasPrerequisites')->andReturn(true); $object->shouldReceive('getView')->andReturn('error'); // does not matter which view is returned $object->shouldReceive('getViewParameters')->andReturn([]); $this->be($this->user()); $response = $this->get(route('import.prerequisites', ['file'])); $response->assertStatus(200); } /** * @covers \FireflyIII\Http\Controllers\Import\PrerequisitesController::index */ public function testIndexRedirect() { $object = $this->mock(FilePrerequisites::class); $object->shouldReceive('setUser'); $object->shouldReceive('hasPrerequisites')->andReturn(false); $this->be($this->user()); $response = $this->get(route('import.prerequisites', ['file'])); $response->assertStatus(302); $response->assertRedirect(route('import.create-job', ['file'])); } /** * @covers \FireflyIII\Http\Controllers\Import\PrerequisitesController::post */ public function testPost() { $messageBag = new MessageBag; $messageBag->add('nomessage', 'nothing'); $object = $this->mock(FilePrerequisites::class); $object->shouldReceive('setUser'); $object->shouldReceive('hasPrerequisites')->andReturn(true); $object->shouldReceive('storePrerequisites')->andReturn($messageBag); $this->be($this->user()); $response = $this->post(route('import.prerequisites.post', ['file']), []); $response->assertStatus(302); $response->assertSessionHas('error'); $response->assertRedirect(route('import.prerequisites', ['file'])); } /** * @covers \FireflyIII\Http\Controllers\Import\PrerequisitesController::post */ public function testPostDone() { $messageBag = new MessageBag; $messageBag->add('nomessage', 'nothing'); $object = $this->mock(FilePrerequisites::class); $object->shouldReceive('setUser'); $object->shouldReceive('hasPrerequisites')->andReturn(false); $this->be($this->user()); $response = $this->post(route('import.prerequisites.post', ['file']), []); $response->assertStatus(302); $response->assertRedirect(route('import.create-job', ['file'])); } }