Finalize tests for Factories

This commit is contained in:
David Bomba 2019-04-26 21:18:23 +10:00
parent a9fe211799
commit acdc8fad94
4 changed files with 70 additions and 4 deletions

View File

@ -10,7 +10,7 @@ class CloneInvoiceFactory
{ {
$clone_invoice = $invoice->replicate(); $clone_invoice = $invoice->replicate();
$clone_invoice->status_id = Invoice::STATUS_DRAFT; $clone_invoice->status_id = Invoice::STATUS_DRAFT;
$clone_invoice->invoice_number = ''; $clone_invoice->invoice_number = NULL;
$clone_invoice->invoice_date = null; $clone_invoice->invoice_date = null;
$clone_invoice->due_date = null; $clone_invoice->due_date = null;
$clone_invoice->partial_due_date = null; $clone_invoice->partial_due_date = null;

View File

@ -9,9 +9,9 @@ use Illuminate\Support\Facades\Log;
class InvoiceFactory class InvoiceFactory
{ {
public static function create(int $company_id, int $user_id) :\stdClass public static function create(int $company_id, int $user_id) :Invoice
{ {
$invoice = new \stdClass; $invoice = new Invoice();
$invoice->status_id = Invoice::STATUS_DRAFT; $invoice->status_id = Invoice::STATUS_DRAFT;
$invoice->invoice_number = ''; $invoice->invoice_number = '';
$invoice->discount = 0; $invoice->discount = 0;

View File

@ -343,7 +343,7 @@ class CreateUsersTable extends Migration
$t->unsignedInteger('company_id')->index(); $t->unsignedInteger('company_id')->index();
$t->unsignedInteger('status_id'); $t->unsignedInteger('status_id');
$t->string('invoice_number'); $t->string('invoice_number')->nullable();
$t->float('discount'); $t->float('discount');
$t->boolean('is_amount_discount'); $t->boolean('is_amount_discount');

View File

@ -4,6 +4,9 @@ namespace Tests\Unit;
use App\Factory\ClientContactFactory; use App\Factory\ClientContactFactory;
use App\Factory\ClientFactory; use App\Factory\ClientFactory;
use App\Factory\CloneInvoiceFactory;
use App\Factory\InvoiceFactory;
use App\Factory\ProductFactory;
use App\Factory\UserFactory; use App\Factory\UserFactory;
use App\Models\Client; use App\Models\Client;
use App\Utils\Traits\MakesHash; use App\Utils\Traits\MakesHash;
@ -46,6 +49,69 @@ class FactoryCreationTest extends TestCase
]); ]);
} }
/**
* @test
* @covers App\Factory\ProductFactory
*/
public function testProductionCreation()
{
$product = ProductFactory::create($this->company->id, $this->user->id);
$product->save();
$this->assertNotNull($product);
$this->assertInternalType("int", $product->id);
}
/**
* @test
* @covers App\Factory\InvoiceFactory
*/
public function testInvoiceCreation()
{
$client = ClientFactory::create($this->company->id, $this->user->id);
$client->save();
$invoice = InvoiceFactory::create($this->company->id,$this->user->id);//stub the company and user_id
$invoice->client_id = $client->id;
$invoice->save();
$this->assertNotNull($invoice);
$this->assertInternalType("int", $invoice->id);
}
/**
* @test
* @covers App|Factory\CloneInvoiceFactory
*/
public function testCloneInvoiceCreation()
{
$client = ClientFactory::create($this->company->id, $this->user->id);
$client->save();
$invoice = InvoiceFactory::create($this->company->id,$this->user->id);//stub the company and user_id
$invoice->client_id = $client->id;
$invoice->save();
$this->assertNotNull($invoice);
$this->assertInternalType("int", $invoice->id);
$clone = CloneInvoiceFactory::create($invoice, $this->user->id);
$clone->save();
$this->assertNotNull($clone);
$this->assertInternalType("int", $clone->id);
}
/** /**
* @test * @test
* @covers App|Factory\ClientFactory * @covers App|Factory\ClientFactory