Mocking objects for tests

This commit is contained in:
David Bomba 2019-04-10 19:42:19 +10:00
parent f7c31bd5a1
commit b7dc753d58
3 changed files with 66 additions and 17 deletions

View File

@ -2,26 +2,36 @@
namespace App\Factory; namespace App\Factory;
use App\Models\Invoice;
class InvoiceFactory class InvoiceFactory
{ {
public static function create() :\stdClass public static function create() :\stdClass
{ {
$item = new \stdClass; $invoice = new \stdClass;
$item->qty = 0; $invoice->invoice_status_id = Invoice::STATUS_DRAFT;
$item->cost = 0; $invoice->invoice_number = '';
$item->product_key = ''; $invoice->discount = 0;
$item->notes = ''; $invoice->is_amount_discount = true;
$item->discount = 0; $invoice->po_number = '';
$item->is_amount_discount = true; $invoice->invoice_date = null;
$item->tax_name1 = ''; $invoice->due_date = null;
$item->tax_rate1 = 0; $invoice->is_deleted = false;
$item->tax_name2 = ''; $invoice->line_items = json_encode([]);
$item->tax_rate2 = 0; $invoice->settings = json_encode([]);
$item->sort_id = 0; $invoice->backup = json_encode([]);
$item->line_total = 0; $invoice->tax_name1 = '';
$item->invoice_item_type_id = 0; $invoice->tax_rate1 = 0;
$invoice->tax_name2 = '';
$invoice->tax_rate2 = 0;
$invoice->custom_value1 = '';
$invoice->custom_value2 = '';
$invoice->custom_value3 = '';
$invoice->custom_value4 = '';
$invoice->amount = 0;
$invoice->balance = 0;
$invoice->partial = 0;
return $item; return $invoice;
} }
} }

View File

@ -355,7 +355,7 @@ class CreateUsersTable extends Migration
$t->boolean('is_deleted')->default(false); $t->boolean('is_deleted')->default(false);
$t->text('line_items')->nullable(); $t->text('line_items')->nullable();
$t->text('options')->nullable(); $t->text('settings')->nullable();
$t->text('backup')->nullable(); $t->text('backup')->nullable();
$t->string('tax_name1'); $t->string('tax_name1');

View File

@ -2,6 +2,7 @@
namespace Tests\Unit; namespace Tests\Unit;
use App\Factory\InvoiceFactory;
use App\Factory\InvoiceItemFactory; use App\Factory\InvoiceItemFactory;
use Tests\TestCase; use Tests\TestCase;
@ -11,11 +12,49 @@ use Tests\TestCase;
*/ */
class InvoiceTest extends TestCase class InvoiceTest extends TestCase
{ {
protected $invoice;
protected $invoice_calc;
private $settings;
public function setUp() public function setUp()
{ {
parent::setUp(); parent::setUp();
$this->invoice = InvoiceFactory::create();
$this->invoice->line_items = $this->buildLineItems();
$this->settings = $this->buildSettings();
$this->invoice_calc = new InvoiceCalc($this->invoice, $this->settings);
} }
private function buildSettings()
{
}
private function buildLineItems()
{
$line_items = [];
$item = InvoiceItemFactory::create();
$item->qty = 1;
$item->cost =10;
$line_items[] = $item;
$item = InvoiceItemFactory::create();
$item->qty = 1;
$item->cost =10;
$line_items[] = $item;
return $line_items;
}
} }