Fix some tests

This commit is contained in:
James Cole
2019-12-22 07:50:40 +01:00
parent dfca5b8722
commit a416b682e0
12 changed files with 92 additions and 231 deletions

View File

@@ -1003,174 +1003,6 @@ class BinderTest extends TestCase
$this->assertEquals(Response::HTTP_NOT_FOUND, $response->getStatusCode());
}
/**
* Normal user can access file routine
*
* @covers \FireflyIII\Http\Middleware\Binder
* @covers \FireflyIII\Support\Binder\ImportProvider
*/
public function testImportProvider(): void
{
Log::info(sprintf('Now in test %s.', __METHOD__));
$repository = $this->mock(UserRepositoryInterface::class);
$this->mock(PrerequisitesInterface::class);
// mock all prerequisite classes.
$bunq = $this->mock(BunqPrerequisites::class);
$spectre = $this->mock(SpectrePrerequisites::class);
$ynab = $this->mock(YnabPrerequisites::class);
$bunq->shouldReceive('setUser')->atLeast()->once();
$spectre->shouldReceive('setUser')->atLeast()->once();
$ynab->shouldReceive('setUser')->atLeast()->once();
$bunq->shouldReceive('isComplete')->atLeast()->once()->andReturn(false);
$spectre->shouldReceive('isComplete')->atLeast()->once()->andReturn(false);
$ynab->shouldReceive('isComplete')->atLeast()->once()->andReturn(false);
$repository->shouldReceive('hasRole')->withArgs([Mockery::any(), 'demo'])->andReturn(false)->atLeast()->once();
Route::middleware(Binder::class)->any(
'/_test/binder/{import_provider}', static function (string $name) {
return sprintf('import_provider: %s', $name);
}
);
$this->be($this->user());
$response = $this->get('/_test/binder/file');
$this->assertEquals(Response::HTTP_OK, $response->getStatusCode());
$response->assertSee('file');
}
/**
* Nobody can access "bad" import routine.
*
* @covers \FireflyIII\Http\Middleware\Binder
* @covers \FireflyIII\Support\Binder\ImportProvider
*/
public function testImportProviderBad(): void
{
Log::info(sprintf('Now in test %s.', __METHOD__));
$repository = $this->mock(UserRepositoryInterface::class);
$this->mock(PrerequisitesInterface::class);
// mock all prerequisite classes.
$bunq = $this->mock(BunqPrerequisites::class);
$spectre = $this->mock(SpectrePrerequisites::class);
$ynab = $this->mock(YnabPrerequisites::class);
$bunq->shouldReceive('setUser')->atLeast()->once();
$spectre->shouldReceive('setUser')->atLeast()->once();
$ynab->shouldReceive('setUser')->atLeast()->once();
$bunq->shouldReceive('isComplete')->atLeast()->once()->andReturn(false);
$spectre->shouldReceive('isComplete')->atLeast()->once()->andReturn(false);
$ynab->shouldReceive('isComplete')->atLeast()->once()->andReturn(false);
$repository->shouldReceive('hasRole')->withArgs([Mockery::any(), 'demo'])->andReturn(false)->atLeast()->once();
Route::middleware(Binder::class)->any(
'/_test/binder/{import_provider}', static function (string $name) {
return sprintf('import_provider: %s', $name);
}
);
$this->be($this->user());
$response = $this->get('/_test/binder/bad');
$this->assertEquals(Response::HTTP_NOT_FOUND, $response->getStatusCode());
}
/**
* Demo user cannot access file import routine.
*
* @covers \FireflyIII\Http\Middleware\Binder
* @covers \FireflyIII\Support\Binder\ImportProvider
*/
public function testImportProviderDemoFile(): void
{
Log::info(sprintf('Now in test %s.', __METHOD__));
$repository = $this->mock(UserRepositoryInterface::class);
$this->mock(PrerequisitesInterface::class);
// mock all prerequisite classes.
$bunq = $this->mock(BunqPrerequisites::class);
$spectre = $this->mock(SpectrePrerequisites::class);
$ynab = $this->mock(YnabPrerequisites::class);
$fake = $this->mock(FakePrerequisites::class);
$fake->shouldReceive('setUser')->atLeast()->once();
$fake->shouldReceive('isComplete')->atLeast()->once()->andReturn(false);
$repository->shouldReceive('hasRole')->withArgs([Mockery::any(), 'demo'])->andReturn(true)->atLeast()->once();
Route::middleware(Binder::class)->any(
'/_test/binder/{import_provider}', static function (string $name) {
return sprintf('import_provider: %s', $name);
}
);
$this->be($this->user());
$response = $this->get('/_test/binder/file');
$this->assertEquals(Response::HTTP_NOT_FOUND, $response->getStatusCode());
}
/**
* Normal user cannot access fake import routine.
*
* @covers \FireflyIII\Http\Middleware\Binder
* @covers \FireflyIII\Support\Binder\ImportProvider
*/
public function testImportProviderFake(): void
{
Log::info(sprintf('Now in test %s.', __METHOD__));
$repository = $this->mock(UserRepositoryInterface::class);
$this->mock(PrerequisitesInterface::class);
// mock all prerequisite classes.
$bunq = $this->mock(BunqPrerequisites::class);
$spectre = $this->mock(SpectrePrerequisites::class);
$ynab = $this->mock(YnabPrerequisites::class);
$bunq->shouldReceive('setUser')->atLeast()->once();
$spectre->shouldReceive('setUser')->atLeast()->once();
$ynab->shouldReceive('setUser')->atLeast()->once();
$bunq->shouldReceive('isComplete')->atLeast()->once()->andReturn(false);
$spectre->shouldReceive('isComplete')->atLeast()->once()->andReturn(false);
$ynab->shouldReceive('isComplete')->atLeast()->once()->andReturn(false);
$repository->shouldReceive('hasRole')->withArgs([Mockery::any(), 'demo'])->andReturn(false)->atLeast()->once();
Route::middleware(Binder::class)->any(
'/_test/binder/{import_provider}', static function (string $name) {
return sprintf('import_provider: %s', $name);
}
);
$this->be($this->user());
$response = $this->get('/_test/binder/fake');
$this->assertEquals(Response::HTTP_NOT_FOUND, $response->getStatusCode());
}
/**
* @covers \FireflyIII\Http\Middleware\Binder
* @covers \FireflyIII\Support\Binder\ImportProvider
*/
public function testImportProviderNotLoggedIn(): void
{
Log::info(sprintf('Now in test %s.', __METHOD__));
$this->mock(UserRepositoryInterface::class);
$this->mock(PrerequisitesInterface::class);
Route::middleware(Binder::class)->any(
'/_test/binder/{import_provider}', static function (string $name) {
return sprintf('import_provider: %s', $name);
}
);
$response = $this->get('/_test/binder/file');
$this->assertEquals(Response::HTTP_NOT_FOUND, $response->getStatusCode());
}
/**
* @covers \FireflyIII\Http\Middleware\Binder
* @covers \FireflyIII\Support\Binder\JournalList