Skip to content

Commit

Permalink
Add CRUD Tests for Models
Browse files Browse the repository at this point in the history
  • Loading branch information
zanechua committed Nov 12, 2018
1 parent 13259b4 commit 64983ff
Show file tree
Hide file tree
Showing 13 changed files with 412 additions and 39 deletions.
2 changes: 1 addition & 1 deletion app/Models/Client.php
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ class Client extends Model
'street',
'unitnumber',
'postalcode',
'country',
'country_code',
'nickname',
'crn',
'website',
Expand Down
2 changes: 1 addition & 1 deletion app/Models/Company.php
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ protected static function boot()
{
parent::boot();

static::creating(function ($company) {
static::saving(function ($company) {
$company->slug = str_slug($company->name);
static::generateSlug($company);
});
Expand Down
58 changes: 56 additions & 2 deletions tests/Unit/ClientTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
namespace Tests\Unit;

use App\Models\Client;
use App\Models\Company;
use Tests\TestCase;
use Illuminate\Foundation\Testing\WithFaker;
use Illuminate\Foundation\Testing\RefreshDatabase;
Expand All @@ -19,7 +20,7 @@ class ClientTest extends TestCase

public function test_create_client()
{
$company = factory(\App\Models\Company::class)->create();
$company = factory(Company::class)->create();

Client::unguard();

Expand All @@ -43,10 +44,63 @@ public function test_create_client()
'company_id' => $company->id
]);

Client::unguard();
Client::reguard();

$this->assertEquals($client->company->name, $company->name);
$this->assertEquals('Poowf Labs', $client->companyname);
}

public function test_update_client()
{
$company = factory(Company::class)->create();
$company2 = factory(Company::class)->create();
$client = factory(Client::class)->create([
'company_id' => $company->id
]);

$this->assertInstanceOf(Client::class, $client);

$client->companyname = 'Meow Meow Incorporated';
$client->phone = '+6564142762';
$client->save();
$client->refresh();

$this->assertEquals('Meow Meow Incorporated', $client->companyname);
$this->assertEquals('+6564142762', $client->phone);

$data = [
'postalcode' => '585151',
'country_code' => 'SG',
'nickname' => 'Shoop da Whoop',
'crn' => 'C-ARE-AND',
'website' => 'itsawebsite.com',
'company_id' => $company2->id
];

$client->fill($data);
$client->save();
$client->refresh();

$this->assertEquals('585151', $client->postalcode);
$this->assertEquals('SG', $client->country_code);
$this->assertEquals('Shoop da Whoop', $client->nickname);
$this->assertEquals('C-ARE-AND', $client->crn);
$this->assertEquals('itsawebsite.com', $client->website);
$this->assertNotEquals($company2->id, $client->company_id);
}

public function test_delete_client()
{
$company = factory(Company::class)->create();
$client = factory(Client::class)->create([
'company_id' => $company->id
]);

$this->assertInstanceOf(Client::class, $client);

$client = $client->delete();

$this->assertEquals('true', json_encode($client));
$this->assertEmpty($company->clients);
}
}
51 changes: 50 additions & 1 deletion tests/Unit/CompanyAddressTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

namespace Tests\Unit;

use App\Models\Company;
use App\Models\CompanyAddress;
use Tests\TestCase;
use Illuminate\Foundation\Testing\WithFaker;
Expand All @@ -18,7 +19,7 @@ class CompanyAddressTest extends TestCase
*/
public function test_create_company_address()
{
$company = factory(\App\Models\Company::class)->create();
$company = factory(Company::class)->create();

CompanyAddress::unguard();

Expand All @@ -36,4 +37,52 @@ public function test_create_company_address()
$this->assertEquals($companyAddress->company->name, $company->name);
$this->assertEquals('123 Street Name', $companyAddress->street);
}

public function test_update_company_address()
{
$company = factory(Company::class)->create();
$companyAddress = factory(CompanyAddress::class)->create([
'company_id' => $company->id
]);

$this->assertInstanceOf(CompanyAddress::class, $companyAddress);

$companyAddress->buildingtype = '2';
$companyAddress->postalcode = '234523';
$companyAddress->save();
$companyAddress->refresh();

$this->assertEquals('2', $companyAddress->buildingtype);
$this->assertEquals('234523', $companyAddress->postalcode);

$data = [
'block' => '1231',
'street' => 'Monster Moon Street',
'unitnumber' => '#100-100',
];

$companyAddress->fill($data);
$companyAddress->save();
$companyAddress->refresh();

$this->assertEquals('1231', $companyAddress->block);
$this->assertEquals('Monster Moon Street', $companyAddress->street);
$this->assertEquals('#100-100', $companyAddress->unitnumber);
}


public function test_delete_company_address()
{
$company = factory(Company::class)->create();
$companyAddress = factory(CompanyAddress::class)->create([
'company_id' => $company->id
]);

$this->assertInstanceOf(CompanyAddress::class, $companyAddress);

$companyAddress = $companyAddress->delete();

$this->assertEquals('true', json_encode($companyAddress));
$this->assertEmpty($company->address);
}
}
53 changes: 52 additions & 1 deletion tests/Unit/CompanySettingsTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

namespace Tests\Unit;

use App\Models\Company;
use App\Models\CompanySettings;
use Tests\TestCase;
use Illuminate\Foundation\Testing\WithFaker;
Expand All @@ -18,7 +19,7 @@ class CompanySettingsTest extends TestCase
*/
public function test_create_company_settings()
{
$company = factory(\App\Models\Company::class)->create();
$company = factory(Company::class)->create();

CompanySettings::unguard();

Expand All @@ -36,4 +37,54 @@ public function test_create_company_settings()
$this->assertEquals($companySettings->company->name, $company->name);
$this->assertEquals('asdfasfdasfasfasdf <strong>asdfasdfasdf</strong> asfdassafas <p>asdfasdfasdfas</p>', $companySettings->invoice_conditions);
}

public function test_update_company_settings()
{
$company = factory(Company::class)->create();
$companySettings = factory(CompanySettings::class)->create([
'company_id' => $company->id
]);

$this->assertInstanceOf(CompanySettings::class, $companySettings);

$companySettings->quote_conditions = 'THIS IS SHTEASDF SACONDITIONS OF THE QUOTE OMGOMGOMGOGMG THESE ARE NOT THE DROIDS YOU ARE LOOKING FOR';
$companySettings->tax = '12';
$companySettings->save();
$companySettings->refresh();

$this->assertEquals('THIS IS SHTEASDF SACONDITIONS OF THE QUOTE OMGOMGOMGOGMG THESE ARE NOT THE DROIDS YOU ARE LOOKING FOR', $companySettings->quote_conditions);
$this->assertEquals('12', $companySettings->tax);

$data = [
'quote_prefix' => 'OINKQ',
'invoice_conditions' => 'I TAWT I SAW A PUTTY TAT',
'quote_conditions' => 'THIS IS TEH CONDIXION.',
'tax' => '5',
];

$companySettings->fill($data);
$companySettings->save();
$companySettings->refresh();

$this->assertEquals('OINKQ', $companySettings->quote_prefix);
$this->assertEquals('I TAWT I SAW A PUTTY TAT', $companySettings->invoice_conditions);
$this->assertEquals('THIS IS TEH CONDIXION.', $companySettings->quote_conditions);
$this->assertEquals('5', $companySettings->tax);
}


public function test_delete_company_settings()
{
$company = factory(Company::class)->create();
$companySettings = $company->settings;

$this->assertInstanceOf(CompanySettings::class, $companySettings);

$companySettings = $companySettings->delete();

$company->refresh();

$this->assertEquals('true', json_encode($companySettings));
$this->assertEmpty($company->settings);
}
}
56 changes: 54 additions & 2 deletions tests/Unit/CompanyTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
namespace Tests\Unit;

use App\Models\Company;
use App\Models\CompanyAddress;
use App\Models\CompanySettings;
use Tests\TestCase;
use Illuminate\Foundation\Testing\WithFaker;
use Illuminate\Foundation\Testing\RefreshDatabase;
Expand Down Expand Up @@ -39,15 +41,65 @@ public function test_create_company()
$this->assertEquals('poowf-labs', $company->slug);
}

public function test_update_company()
{
$user = factory(\App\Models\User::class)->create();
$company = factory(Company::class)->create();
$company->owner->company_id = $company->id;
$company->owner->save();

public function test_company_has_a_company_settings_relationship()
$this->assertInstanceOf(Company::class, $company);

$company->name = 'Nyan Industries';
$company->quote_index = '234523';
$company->phone = '+6564142762';
$company->save();
$company->refresh();

$this->assertEquals('nyan-industries', $company->slug);
$this->assertEquals('234523', $company->quote_index);
$this->assertEquals('+6564142762', $company->phone);

$data = [
'name' => 'Nyan Industries',
'crn' => 'CERRRANDFSADFS',
'domain_name' => 'nekonyanyananannynayynaynaya.com',
'phone' => '+659774123',
'invoice_index' => '2342',
'user_id' => $user->id
];

$company->fill($data);
$company->save();
$company->refresh();

$this->assertEquals('Nyan Industries', $company->name);
$this->assertEquals('CERRRANDFSADFS', $company->crn);
$this->assertEquals('nekonyanyananannynayynaynaya.com', $company->domain_name);
$this->assertEquals('+659774123', $company->phone);
$this->assertNotEquals('2342', $company->invoice_index);
}

public function test_delete_company()
{
$company = factory(Company::class)->create();
//Need to assign the company_id to the user
$company->owner->company_id = $company->id;
$company->owner->save();

$this->assertInstanceOf(Company::class, $company);

$company = $company->delete();

$this->assertEquals('true', json_encode($company));
}

public function test_company_has_a_company_settings_relationship()
{
$company = factory(Company::class)->create();
//Need to assign the company_id to the user

$this->assertTrue(isset($company->settings));
$this->assertInstanceOf(CompanySettings::class, $company->settings);
$this->assertEquals($company->id, $company->settings->company_id);
}
}
19 changes: 0 additions & 19 deletions tests/Unit/ExampleTest.php

This file was deleted.

0 comments on commit 64983ff

Please sign in to comment.