Commit 6fc67926 by Евгений

Добаивл тестов

1 parent fbb8704d
...@@ -90,7 +90,7 @@ class AddCampaigns extends DirectRequest ...@@ -90,7 +90,7 @@ class AddCampaigns extends DirectRequest
$this->dictionaryCampaigns = $params['dictionaryCampaigns']; $this->dictionaryCampaigns = $params['dictionaryCampaigns'];
} }
private function requestPrepare($params) public function requestPrepare($params)
{ {
$this->setService('Campaigns'); $this->setService('Campaigns');
$this->setMethod('add'); $this->setMethod('add');
......
...@@ -81,7 +81,7 @@ class GetCampaigns extends DirectRequest ...@@ -81,7 +81,7 @@ class GetCampaigns extends DirectRequest
} }
} }
private function requestPrepare($filter) public function requestPrepare($filter)
{ {
$this->setService('Campaigns'); $this->setService('Campaigns');
$this->setMethod('get'); $this->setMethod('get');
......
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
namespace Tests\Unit; namespace Tests\Unit;
use App\Jobs\ProcessCallAPI;
use App\Jobs\ProcessCallLimitedAPI; use App\Jobs\ProcessCallLimitedAPI;
use App\Models\Account; use App\Models\Account;
use App\Models\Campaigns; use App\Models\Campaigns;
...@@ -10,6 +11,7 @@ use App\Models\Tokens; ...@@ -10,6 +11,7 @@ use App\Models\Tokens;
use App\Models\User; use App\Models\User;
use App\Models\Variable; use App\Models\Variable;
use App\Service\Contract\API; use App\Service\Contract\API;
use App\Service\Limits;
use App\Service\Requests\APIRequest; use App\Service\Requests\APIRequest;
use Illuminate\Support\Facades\Queue; use Illuminate\Support\Facades\Queue;
use Tests\TestCase; use Tests\TestCase;
...@@ -49,8 +51,7 @@ class AddCampaignsTest extends TestCase ...@@ -49,8 +51,7 @@ class AddCampaignsTest extends TestCase
'type' => Tokens::MAIN, 'type' => Tokens::MAIN,
]); ]);
$this->campaign = factory(Campaigns::class)->create([ $this->campaign = factory(Campaigns::class,11)->create([
'external_id' => 1,
'manage' => true, 'manage' => true,
'token' => $this->token_main->getKey(), 'token' => $this->token_main->getKey(),
]); ]);
...@@ -71,7 +72,7 @@ class AddCampaignsTest extends TestCase ...@@ -71,7 +72,7 @@ class AddCampaignsTest extends TestCase
])) ]))
->assertStatus(302); ->assertStatus(302);
$this->assertEquals(1, $this->dictionary->campaigns->count()); $this->assertEquals(11, $this->dictionary->campaigns->count());
$this->params = [ $this->params = [
'dictionaryCampaigns' => $this->token->dictionaryCampaignsEnabledForNotExternal, 'dictionaryCampaigns' => $this->token->dictionaryCampaignsEnabledForNotExternal,
...@@ -117,4 +118,57 @@ class AddCampaignsTest extends TestCase ...@@ -117,4 +118,57 @@ class AddCampaignsTest extends TestCase
$this->assertNotNull(1, $this->dictionary->campaigns->first()->pivot->external_upload_at); $this->assertNotNull(1, $this->dictionary->campaigns->first()->pivot->external_upload_at);
} }
public function test_prepare_request_and_slice(){
$this->assertEquals(11, $this->dictionary->campaigns->count());
$this->assertEquals(11, $this->token->dictionaryCampaignsEnabledForNotExternal->count());
$this->request->requestPrepare([
'dictionaryCampaigns' => $this->token->dictionaryCampaignsEnabledForNotExternal,
'variables' => Variable::all(),
]);
$params = $this->request->getParams();
$this->assertCount(11, $params['Campaigns']);
$newRequest = $this->request->slice(5);
$params = $this->request->getParams();
$this->assertCount(5, $params['Campaigns']);
$params = $newRequest->getParams();
$this->assertCount(6, $params['Campaigns']);
}
public function test_call_api(){
Queue::fake();
$this->request->call([
'dictionaryCampaigns' => $this->token->dictionaryCampaignsEnabledForNotExternal,
'variables' => Variable::all(),
]);
Queue::assertPushed(ProcessCallLimitedAPI::class);
$limits = Limits::getInstance($this->request->getToken());
$this->token->limit = 10000;
$this->token->save();
//получаем сколько объектов можем обработать
$objects = $limits->countObjectsLimit($this->request);
$this->assertEquals($objects, 10);
$limitId = $limits->doRezerv($this->request, $objects);
$limit = \App\Models\Limits::find($limitId);
$limits = Limits::getInstance($this->request->getToken());
$maxObjects = $limits->countObjectsLimit($this->request);
if ($maxObjects and $maxObjects !== $limits::NAN && $this->request->getObjectsCount() > $maxObjects) {
//те на которые не хватило баллов помещаем в очередь
if ($apiR = $this->request->slice($maxObjects)) {
dispatch(new ProcessCallLimitedAPI($apiR))->onQueue('limits');
}
}
Queue::assertPushed(ProcessCallLimitedAPI::class, 2);
}
} }
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!