Am mai avansat de atunci :), multumita in mare parte voua.
Cazul meu concret, care este altul decat cel din primul mesaj, raspunde celor trei cerinte precizate de tine, astfel:
- nu am nevoie de nici o entitate
- fac un POST request
3, in ceea ce priveste HTTP testing, mai am de acoperit cateva posibilitati privind datele de intrare.
In prezent, sunt pe aici
<?php
namespace Tests\Unit;
use Tests\TestCase;
use Illuminate\Foundation\Testing\WithoutMiddleware;
use Illuminate\Foundation\Testing\DatabaseMigrations;
use Illuminate\Foundation\Testing\DatabaseTransactions;
use App\Http\Controllers\IndicatorController;
use Illuminate\Http\Request;
class CalculateTest extends TestCase
{ use DatabaseTransactions;
use WithoutMiddleware;
/**
* A basic test example.
*
* @return void
*/
public function test_new_indicator_created_and_listed_and_success_message_send()
{
$max_target=array(90,100,150);
$value=array(0.9,1,1.5);
$req= array('name'=>'precision','bonus_value'=>100,'max_target'=>$max_target,'value'=>$value);
$response = $this->call('POST', '/newindicator', $req);
$sessionData = session()->all();
$response->assertStatus(200)
->assertSee('precision');
return $this->assertTrue($sessionData['status']=='Indicator adaugat!');
}
public function test_fara_prag_de_stare_1_message_send()
{
$max_target=array(90,100,150);
$value=array(1);
$req= array('name'=>'precision','bonus_value'=>100,'max_target'=>$max_target,'value'=>null);
$response = $this->call('POST', '/newindicator', $req);
$response->assertStatus(200)
->assertDontSee('precision');
$sessionData = session()->all();
return $this->assertTrue($sessionData['status']=='Fara prag de stare');
}
public function test_fara_prag_de_stare_2_message_send()
{
$value=array(1);
$req= array('name'=>'precision','bonus_value'=>100,'max_target'=>null,'value'=>null);
$response = $this->call('POST', '/newindicator', $req);
$response->assertStatus(200)
->assertDontSee('precision');
$sessionData = session()->all();
return $this->assertTrue($sessionData['status']=='Fara prag de stare');
}
public function test_fara_prag_de_stare_3_message_send()
{
$value=array(0.9,1,1.5);
$req= array('name'=>'precision','bonus_value'=>100,'max_target'=>null,'value'=>$value);
$response = $this->call('POST', '/newindicator', $req);
$response->assertStatus(200)
->assertDontSee('precision');
$sessionData = session()->all();
return $this->assertTrue($sessionData['status']=='Fara prag de stare');
}
public function test_prag_de_stare_incorect_1_message_send()
{
$max_target=array(90,100,150);
$value=array('a',1,1.5);
$req= array('name'=>'precision','bonus_value'=>100,'max_target'=>$max_target,'value'=>$value);
$response = $this->call('POST', '/newindicator', $req);
$response->assertStatus(200)
->assertDontSee('precision');
$sessionData = session()->all();
return $this->assertTrue($sessionData['status']=='Prag de stare incorect');
}
public function test_prag_de_stare_incorect_2_message_send()
{
$max_target=array(90,'a',150);
$value=array(0.9,1,1.5);
$req= array('name'=>'precision','bonus_value'=>100,'max_target'=>$max_target,'value'=>$value);
$response = $this->call('POST', '/newindicator', $req);
$response->assertStatus(200)
->assertDontSee('precision');
$sessionData = session()->all();
return $this->assertTrue($sessionData['status']=='Prag de stare incorect');
}
public function test_prag_de_stare_incorect_3_message_send()
{
$max_target=array(null,100,150);
$value=array(0.9,1,1.5);
$req= array('name'=>'precision','bonus_value'=>100,'max_target'=>$max_target,'value'=>$value);
$response = $this->call('POST', '/newindicator', $req);
$response->assertStatus(200)
->assertDontSee('precision');
$sessionData = session()->all();
return $this->assertTrue($sessionData['status']=='Prag de stare incorect');
}
public function test_prag_de_stare_incorect_4_message_send()
{
$max_target=array(90,100,150);
$value=array(null,1,1.5);
$req= array('name'=>'precision','bonus_value'=>100,'max_target'=>$max_target,'value'=>$value);
$response = $this->call('POST', '/newindicator', $req);
$response->assertStatus(200)
->assertDontSee('precision');
$sessionData = session()->all();
return $this->assertTrue($sessionData['status']=='Prag de stare incorect');
}
public function test_bonus_value_bad_type_validation_fail_Test()
{
$max_target=array(90,100,150);
$value=array(0.9,1,1.5);
$req= array('name'=>'precision','bonus_value'=>'alpha','max_target'=>$max_target,'value'=>$value);
$response = $this->call('POST', '/newindicator', $req);
$response->assertRedirect('/')
->assertDontSee('precision');
$sessionErrors = session()->get('errors');
return $this->assertTrue($sessionErrors->has('bonus_value'));
}
public function test_name_value_validation_fail_test()
{
$max_target=array(90,100,150);
$value=array(0.9,1,1.5);
$req= array('bonus_value'=>100,'max_target'=>$max_target,'value'=>$value);
$response = $this->call('POST', '/newindicator', $req);
$response->assertRedirect('/')
->assertDontSee('precision');
$sessionErrors = session()->get('errors');
return $this->assertTrue($sessionErrors->has('name'));
}
}