. */ declare(strict_types=1); namespace Tests\Feature\Controllers\Admin; use Carbon\Carbon; use FireflyConfig; use FireflyIII\Exceptions\FireflyException; use FireflyIII\Models\Configuration; use FireflyIII\Repositories\User\UserRepositoryInterface; use FireflyIII\Services\FireflyIIIOrg\Update\UpdateRequest; use FireflyIII\Services\Github\Object\Release; use Log; use Mockery; use Tests\TestCase; /** * Class UpdateControllerTest * * @SuppressWarnings(PHPMD.CouplingBetweenObjects) * @SuppressWarnings(PHPMD.ExcessiveMethodLength) * @SuppressWarnings(PHPMD.TooManyPublicMethods) */ class UpdateControllerTest extends TestCase { /** * */ public function setUp(): void { parent::setUp(); Log::info(sprintf('Now in %s.', get_class($this))); } /** * @covers \FireflyIII\Http\Controllers\Admin\UpdateController */ public function testIndex(): void { // mock stuff $userRepos = $this->mock(UserRepositoryInterface::class); // mock calls $userRepos->shouldReceive('hasRole')->withArgs([Mockery::any(), 'owner'])->andReturn(true)->atLeast()->once(); $this->mockDefaultSession(); // mock update calls. $config = new Configuration; $config->data = -1; $channelConfig = new Configuration; $channelConfig->data = 'stable'; FireflyConfig::shouldReceive('get')->withArgs(['permission_update_check', -1])->once()->andReturn($config); FireflyConfig::shouldReceive('get')->withArgs(['update_channel', 'stable'])->once()->andReturn($channelConfig); // call service $this->be($this->user()); $response = $this->get(route('admin.update-check')); $response->assertStatus(200); $response->assertSee('