ApiRequestTest.php 2.06 KB
<?php

namespace Tests\Unit;

use App\Models\Account;
use App\Models\Tokens;
use App\Models\User;
use App\Service\APIRequest;
use App\Service\Contract\API;
use App\Service\Limits;
use Illuminate\Database\Eloquent\ModelNotFoundException;
use Illuminate\Support\Facades\Date;
use Tests\TestCase;
use Illuminate\Foundation\Testing\RefreshDatabase;

class ApiRequestTest extends TestCase
{
    use RefreshDatabase;

    private $request;

    protected function setUp(): void
    {
        parent::setUp();

        $this->request = \App\Service\Requests\APIRequest::getInstance(API::YANDEX);

    }

    public function testApi(){
        $this->assertEquals($this->request->getApi(), API::YANDEX);
    }

    public function testTokenType(){

        $account = Account::create(['name' => 'Acme Corporation']);

        $this->user = factory(User::class)->create([
            'account_id' => $account->id,
            'first_name' => 'John',
            'last_name' => 'Doe',
            'email' => 'johndoe@example.com',
            'owner' => true,
        ]);

        $this->token = factory(Tokens::class)->create([
            'created_by'    =>  $this->user->id
        ]);
        $this->request->setToken( $this->token );
        $this->assertEquals($this->token, $this->request->getToken());

        $this->expectException(\TypeError::class);
        $this->request->setToken( 1 );
    }

    public function testChunk(){
        $this->request->setParams([
            'Page'  =>  [
                "Limit" =>  10,
                "Offset"    =>  0
            ]
        ]);
        $request = $this->request->chunk(3);
        $this->assertEquals($request->getParams()['Page']['Limit'], 7);
        $this->assertEquals($this->request->getParams()['Page']['Limit'], 3);

        $this->request->setParams([
            'Page'  =>  [
                "Limit" =>  10,
                "Offset"    =>  0
            ]
        ]);
        $request = $this->request->chunk(20);
        $this->assertNull($request);
        $this->assertEquals($this->request->getParams()['Page']['Limit'], 10);
    }

}