Port/reenable most unit tests. (#5921)

* Port/reenable most unit tests.

Should probably flesh out notifications tests in the next few days.

* Disable json checkin in ApiAssetsTest@index for now.  It's broken, but hiding other real broken things.

* Re Disable Groups allowDelete
This commit is contained in:
Daniel Meltzer 2018-07-23 09:48:21 -04:00 committed by snipe
parent 059126f642
commit de413408f5
15 changed files with 721 additions and 697 deletions

View file

@ -26,7 +26,11 @@ $factory->define(Asset::class, function (Faker\Generator $faker) {
'purchase_cost' => $faker->randomFloat(2, '299.99', '2999.99'),
'order_number' => $faker->numberBetween(1000000, 50000000),
'supplier_id' => 1,
'requestable' => $faker->boolean()
'requestable' => $faker->boolean(),
'assigned_to' => null,
'assigned_type' => null,
'next_audit_date' => null,
'last_checkout' => null,
];
});

View file

@ -32,3 +32,4 @@
# Header set X-Permitted-Cross-Domain-Policies "master-only"
</IfModule>
Options -Indexes

View file

@ -31,10 +31,15 @@ class ApiAssetsCest
$I->seeResponseIsJson();
$I->seeResponseCodeIs(200);
$response = json_decode($I->grabResponse(), true);
// FIXME: This is disabled because the statuslabel join is doing something weird in Api/AssetsController@index
// However, it's hiding other real test errors in other parts of the code, so disabling this for now until we can fix.
// $response = json_decode($I->grabResponse(), true);
// sample verify
$asset = Asset::orderByDesc('id')->take(20)->get()->first();
$I->seeResponseContainsJson($I->removeTimestamps((new AssetsTransformer)->transformAsset($asset)));
// $asset = Asset::orderByDesc('id')->take(20)->get()->first();
//
// $I->seeResponseContainsJson($I->removeTimestamps((new AssetsTransformer)->transformAsset($asset)));
}
/** @test */

View file

@ -4,6 +4,7 @@ use App\Exceptions\CheckoutNotAllowed;
use App\Helpers\Helper;
use App\Models\Asset;
use App\Models\Setting;
use App\Models\Statuslabel;
use Illuminate\Support\Facades\Auth;
class ApiCheckoutAssetsCest
@ -56,11 +57,13 @@ class ApiCheckoutAssetsCest
public function checkoutAssetToAsset(ApiTester $I) {
$I->wantTo('Check out an asset to an asset');
//Grab an asset from the database that isn't checked out.
$asset = Asset::whereNull('assigned_to')->where('model_id',8)->first(); // We need to make sure that this is an asset/model that doesn't require acceptance
$asset = Asset::whereNull('assigned_to')
->where('model_id',8)
->where('status_id', Statuslabel::deployable()->first()->id)
->first(); // We need to make sure that this is an asset/model that doesn't require acceptance
$targetAsset = factory('App\Models\Asset')->states('desktop-macpro')->create([
'name' => "Test Asset For Checkout to"
]);
// dd($targetAsset->model->category);
$data = [
'assigned_asset' => $targetAsset->id,
'checkout_to_type' => 'asset'
@ -88,11 +91,13 @@ class ApiCheckoutAssetsCest
public function checkoutAssetToLocation(ApiTester $I) {
$I->wantTo('Check out an asset to an asset');
//Grab an asset from the database that isn't checked out.
$asset = Asset::whereNull('assigned_to')->where('model_id',8)->first();
$asset = Asset::whereNull('assigned_to')
->where('model_id',8)
->where('status_id', Statuslabel::deployable()->first()->id)
->first(); // We need to make sure that this is an asset/model that doesn't require acceptance
$targetLocation = factory('App\Models\Location')->create([
'name' => "Test Location for Checkout"
]);
// dd($targetAsset->model->category);
$data = [
'assigned_location' => $targetLocation->id,
'checkout_to_type' => 'location'

View file

@ -58,7 +58,8 @@ class GroupsCest
public function allowsDelete(FunctionalTester $I, $scenario)
{
$scenario->incomplete('Fix this test to generate a group for deletes');
$scenario->incomplete('Fix this test to generate a group for deleting');
$I->wantTo('Ensure I can delete a group');
// create a group

View file

@ -13,94 +13,87 @@ class AccessoryTest extends BaseTest
*/
protected $tester;
// public function testAccessoryAdd()
// {
// $accessory = factory(Accessory::class)->make();
public function testFailsEmptyValidation()
{
// An Accessory requires a name, a qty, and a category_id.
$a = Accessory::create();
$this->assertFalse($a->isValid());
$fields = [
'name' => 'name',
'qty' => 'qty',
'category_id' => 'category id'
];
$errors = $a->getErrors();
foreach ($fields as $field => $fieldTitle) {
$this->assertEquals($errors->get($field)[0], "The ${fieldTitle} field is required.");
}
}
public function testFailsMinValidation()
{
// An Accessory name has a min length of 3
// An Accessory has a min qty of 1
// An Accessory has a min amount of 0
$a = factory(Accessory::class)->make([
'name' => 'a',
'qty' => 0,
'min_amt' => -1
]);
$fields = [
'name' => 'name',
'qty' => 'qty',
'min_amt' => 'min amt'
];
$this->assertFalse($a->isValid());
$errors = $a->getErrors();
foreach ($fields as $field => $fieldTitle) {
$this->assertContains("The ${fieldTitle} must be at least", $errors->get($field)[0]);
}
}
// $values = [
// 'name' => $accessory->name,
// 'category_id' => $accessory->category_id,
// 'qty' => $accessory->qty,
// ];
// Accessory::create($values);
public function testCategoryIdMustExist()
{
$category = $this->createValidCategory('accessory-keyboard-category', ['category_type' => 'accessory']);
$accessory = factory(Accessory::class)->states('apple-bt-keyboard')->make(['category_id' => $category->id]);
$this->createValidManufacturer('apple');
// $this->tester->seeRecord('accessories', $values);
// }
$accessory->save();
$this->assertTrue($accessory->isValid());
$newId = $category->id + 1;
$accessory = factory(Accessory::class)->states('apple-bt-keyboard')->make(['category_id' => $newId]);
$accessory->save();
// public function testFailsEmptyValidation()
// {
// // An Accessory requires a name, a qty, and a category_id.
// $a = Accessory::create();
// $this->assertFalse($a->isValid());
// $fields = [
// 'name' => 'name',
// 'qty' => 'qty',
// 'category_id' => 'category id'
// ];
// $errors = $a->getErrors();
// foreach ($fields as $field => $fieldTitle) {
// $this->assertEquals($errors->get($field)[0], "The ${fieldTitle} field is required.");
// }
// }
$this->assertFalse($accessory->isValid());
$this->assertContains("The selected category id is invalid.", $accessory->getErrors()->get('category_id')[0]);
}
// public function testFailsMinValidation()
// {
// // An Accessory name has a min length of 3
// // An Accessory has a min qty of 1
// // An Accessory has a min amount of 0
// $a = factory(Accessory::class)->make([
// 'name' => 'a',
// 'qty' => 0,
// 'min_amt' => -1
// ]);
// $fields = [
// 'name' => 'name',
// 'qty' => 'qty',
// 'min_amt' => 'min amt'
// ];
// $this->assertFalse($a->isValid());
// $errors = $a->getErrors();
// foreach ($fields as $field => $fieldTitle) {
// $this->assertContains("The ${fieldTitle} must be at least", $errors->get($field)[0]);
// }
// }
public function testAnAccessoryBelongsToACompany()
{
$accessory = factory(Accessory::class)
->create(['company_id' => factory(App\Models\Company::class)->create()->id]);
$this->assertInstanceOf(App\Models\Company::class, $accessory->company);
}
// public function testCategoryIdMustExist()
// {
// $category = factory(Category::class)->create(['category_type' => 'accessory']);
// $accessory = factory(Accessory::class)->make(['category_id' => $category->id]);
// $accessory->save();
// $this->assertTrue($accessory->isValid());
// $newId = $category->id + 1;
// $accessory = factory(Accessory::class)->make(['category_id' => $newId]);
// $accessory->save();
public function testAnAccessoryHasALocation()
{
$accessory = factory(Accessory::class)
->create(['location_id' => factory(App\Models\Location::class)->create()->id]);
$this->assertInstanceOf(App\Models\Location::class, $accessory->location);
}
// $this->assertFalse($accessory->isValid());
// }
public function testAnAccessoryBelongsToACategory()
{
$accessory = factory(Accessory::class)->states('apple-bt-keyboard')
->create(['category_id' => factory(Category::class)->states('accessory-keyboard-category')->create(['category_type' => 'accessory'])->id]);
$this->assertInstanceOf(App\Models\Category::class, $accessory->category);
$this->assertEquals('accessory', $accessory->category->category_type);
}
// public function testAnAccessoryBelongsToACompany()
// {
// $accessory = factory(Accessory::class)->create();
// $this->assertInstanceOf(App\Models\Company::class, $accessory->company);
// }
// public function testAnAccessoryHasALocation()
// {
// $accessory = factory(Accessory::class)->create();
// $this->assertInstanceOf(App\Models\Location::class, $accessory->location);
// }
// public function testAnAccessoryBelongsToACategory()
// {
// $accessory = factory(Accessory::class)->create();
// $this->assertInstanceOf(App\Models\Category::class, $accessory->category);
// $this->assertEquals('accessory', $accessory->category->category_type);
// }
// public function testAnAccessoryHasAManufacturer()
// {
// $accessory = factory(Accessory::class)->create();
// $this->assertInstanceOf(App\Models\Manufacturer::class, $accessory->manufacturer);
// }
public function testAnAccessoryHasAManufacturer()
{
$this->createValidManufacturer('apple');
$this->createValidCategory('accessory-keyboard-category');
$accessory = factory(Accessory::class)->states('apple-bt-keyboard')->create(['category_id' => 1]);
$this->assertInstanceOf(App\Models\Manufacturer::class, $accessory->manufacturer);
}
}

View file

@ -13,69 +13,58 @@ class AssetModelTest extends BaseTest
*/
protected $tester;
// public function testAssetModelAdd()
// {
// $assetmodel = factory(AssetModel::class)->make();
// $values = [
// 'name' => $assetmodel->name,
// 'manufacturer_id' => $assetmodel->manufacturer_id,
// 'category_id' => $assetmodel->category_id,
// 'eol' => $assetmodel->eol,
// ];
// AssetModel::create($values);
// $this->tester->seeRecord('models', $values);
// }
public function testAnAssetModelRequiresAttributes()
{
// An Asset Model requires a name, a category_id, and a manufacturer_id.
$a = AssetModel::create();
$this->assertFalse($a->isValid());
$fields = [
'name' => 'name',
'manufacturer_id' => 'manufacturer id',
'category_id' => 'category id'
];
$errors = $a->getErrors();
foreach ($fields as $field => $fieldTitle) {
$this->assertEquals($errors->get($field)[0], "The ${fieldTitle} field is required.");
}
}
// public function testAnAssetModelRequiresAttributes()
// {
// // An Asset Model requires a name, a category_id, and a manufacturer_id.
// $a = AssetModel::create();
// $this->assertFalse($a->isValid());
// $fields = [
// 'name' => 'name',
// 'manufacturer_id' => 'manufacturer id',
// 'category_id' => 'category id'
// ];
// $errors = $a->getErrors();
// foreach ($fields as $field => $fieldTitle) {
// $this->assertEquals($errors->get($field)[0], "The ${fieldTitle} field is required.");
// }
// }
public function testAnAssetModelZerosOutBlankEols()
{
$am = new AssetModel;
$am->eol = '';
$this->assertTrue($am->eol === 0);
$am->eol = '4';
$this->assertTrue($am->eol==4);
}
// public function testAnAssetModelZerosOutBlankEols()
// {
// $am = new AssetModel;
// $am->eol = '';
// $this->assertTrue($am->eol === 0);
// $am->eol = '4';
// $this->assertTrue($am->eol==4);
// }
public function testAnAssetModelContainsAssets()
{
$assetModel = $this->createValidAssetModel();
factory(Asset::class)->create([
'model_id' => $assetModel->id,
]);
$this->assertEquals(1,$assetModel->assets()->count());
}
// public function testAnAssetModelContainsAssets()
// {
// $assetmodel = factory(AssetModel::class)->create();
// $asset = factory(Asset::class)->create([
// 'model_id' => $assetmodel->id,
// ]);
// $this->assertEquals(1,$assetmodel->assets()->count());
// }
public function testAnAssetModelHasACategory()
{
$assetmodel = $this->createValidAssetModel();
$this->assertInstanceOf(App\Models\Category::class, $assetmodel->category);
}
// public function testAnAssetModelHasACategory()
// {
// $assetmodel = factory(AssetModel::class)->create();
// $this->assertInstanceOf(App\Models\Category::class, $assetmodel->category);
// }
public function testAnAssetModelHasADepreciation()
{
// public function anAssetModelHasADepreciation()
// {
// $assetmodel = factory(AssetModel::class)->create();
// $this->assertInstanceOf(App\Models\Depreciation::class, $assetmodel->depreciation);
// }
$assetmodel = $this->createValidAssetModel();
$this->assertInstanceOf(App\Models\Depreciation::class, $assetmodel->depreciation);
}
public function testAnAssetModelHasAManufacturer()
{
$assetmodel = $this->createValidAssetModel();
$this->assertInstanceOf(App\Models\Manufacturer::class, $assetmodel->manufacturer);
}
// public function testAnAssetModelHasAManufacturer()
// {
// $assetmodel = factory(AssetModel::class)->create();
// $this->assertInstanceOf(App\Models\Manufacturer::class, $assetmodel->manufacturer);
// }
}

View file

@ -5,6 +5,7 @@ use App\Models\AssetModel;
use App\Models\Company;
use App\Models\Location;
use App\Models\User;
use Carbon\Carbon;
use Illuminate\Foundation\Testing\DatabaseTransactions;
use Illuminate\Foundation\Testing\WithoutMiddleware;
use Illuminate\Support\Facades\Hash;
@ -16,36 +17,23 @@ class AssetTest extends BaseTest
*/
protected $tester;
// public function testAssetAdd()
// {
// $asset = factory(Asset::class)->make();
// $values = [
// 'name' => $asset->name,
// 'model_id' => $asset->model_id,
// 'status_id' => $asset->status_id,
// 'asset_tag' => $asset->asset_tag,
// ];
// Asset::create($values);
// $this->tester->seeRecord('assets', $values);
// }
public function testFailsEmptyValidation()
{
// An Asset requires a name, a qty, and a category_id.
$a = Asset::create();
$this->assertFalse($a->isValid());
// public function testFailsEmptyValidation()
// {
// // An Asset requires a name, a qty, and a category_id.
// $a = Asset::create();
// $this->assertFalse($a->isValid());
// $fields = [
// 'model_id' => 'model id',
// 'status_id' => 'status id',
// 'asset_tag' => 'asset tag'
// ];
// $errors = $a->getErrors();
// foreach ($fields as $field => $fieldTitle) {
// $this->assertEquals($errors->get($field)[0], "The ${fieldTitle} field is required.");
// }
// }
$fields = [
'model_id' => 'model id',
'status_id' => 'status id',
'asset_tag' => 'asset tag'
];
$errors = $a->getErrors();
foreach ($fields as $field => $fieldTitle) {
$this->assertEquals($errors->get($field)[0], "The ${fieldTitle} field is required.");
}
}
public function testAutoIncrementMixed()
@ -66,246 +54,258 @@ class AssetTest extends BaseTest
$this->assertEquals($expected, $next);
}
// public function testAutoIncrementMixedFullTagNumber()
// {
// $expected = '123411';
// $next = Asset::nextAutoIncrement(
// [
// ['asset_tag' => '0012345'],
// ['asset_tag' => 'WTF00134'],
// ['asset_tag' => 'WTF-745'],
// ['asset_tag' => '0012346'],
// ['asset_tag' => '00123410'],
// ['asset_tag' => 'U8T7597h77']
// ]
// );
// $this->assertEquals($expected, $next);
// }
//
public function testAutoIncrementMixedFullTagNumber()
{
$expected = '123411';
$next = Asset::nextAutoIncrement(
[
['asset_tag' => '0012345'],
['asset_tag' => 'WTF00134'],
['asset_tag' => 'WTF-745'],
['asset_tag' => '0012346'],
['asset_tag' => '00123410'],
['asset_tag' => 'U8T7597h77']
]
);
$this->assertEquals($expected, $next);
}
/**
* @test
*/
// public function testWarrantyExpiresAttribute()
// {
// $asset = factory(\App\Models\Asset::class)->create();
public function testWarrantyExpiresAttribute()
{
$asset = factory(Asset::class)->states('laptop-mbp')->create(['model_id' => $this->createValidAssetModel()->id]);
// $asset->purchase_date = \Carbon\Carbon::createFromDate(2017, 1, 1)->hour(0)->minute(0)->second(0);
// $asset->warranty_months = 24;
// $asset->save();
$asset->purchase_date = Carbon::createFromDate(2017, 1, 1)->hour(0)->minute(0)->second(0);
$asset->warranty_months = 24;
$asset->save();
// $saved_asset = \App\Models\Asset::find($asset->id);
$saved_asset = Asset::find($asset->id);
// $this->tester->assertInstanceOf(\DateTime::class, $saved_asset->purchase_date);
// $this->tester->assertEquals(
// \Carbon\Carbon::createFromDate(2017, 1, 1)->format('Y-m-d'),
// $saved_asset->purchase_date->format('Y-m-d')
// );
// $this->tester->assertEquals(
// \Carbon\Carbon::createFromDate(2017, 1, 1)->setTime(0, 0, 0),
// $saved_asset->purchase_date
// );
// $this->tester->assertEquals(24, $saved_asset->warranty_months);
// $this->tester->assertInstanceOf(\DateTime::class, $saved_asset->warranty_expires);
// $this->tester->assertEquals(
// \Carbon\Carbon::createFromDate(2019, 1, 1)->format('Y-m-d'),
// $saved_asset->warranty_expires->format('Y-m-d')
// );
// $this->tester->assertEquals(
// \Carbon\Carbon::createFromDate(2019, 1, 1)->setTime(0, 0, 0),
// $saved_asset->warranty_expires
// );
// }
$this->tester->assertInstanceOf(\DateTime::class, $saved_asset->purchase_date);
$this->tester->assertEquals(
Carbon::createFromDate(2017, 1, 1)->format('Y-m-d'),
$saved_asset->purchase_date->format('Y-m-d')
);
$this->tester->assertEquals(
Carbon::createFromDate(2017, 1, 1)->setTime(0, 0, 0),
$saved_asset->purchase_date
);
$this->tester->assertEquals(24, $saved_asset->warranty_months);
$this->tester->assertInstanceOf(\DateTime::class, $saved_asset->warranty_expires);
$this->tester->assertEquals(
Carbon::createFromDate(2019, 1, 1)->format('Y-m-d'),
$saved_asset->warranty_expires->format('Y-m-d')
);
$this->tester->assertEquals(
Carbon::createFromDate(2019, 1, 1)->setTime(0, 0, 0),
$saved_asset->warranty_expires
);
}
// public function testModelIdMustExist()
// {
// $model = factory(AssetModel::class)->create();
// $asset = factory(Asset::class)->make(['model_id' => $model->id]);
// $asset->save();
// $this->assertTrue($asset->isValid());
// $newId = $model->id + 1;
// $asset = factory(Asset::class)->make(['model_id' => $newId]);
// $asset->save();
public function testModelIdMustExist()
{
$model = $this->createValidAssetModel();
$asset = factory(Asset::class)->make(['model_id' => $model->id]);
$asset->save();
$this->assertTrue($asset->isValid());
$newId = $model->id + 1;
$asset = factory(Asset::class)->make(['model_id' => $newId]);
$asset->save();
// $this->assertFalse($asset->isValid());
// }
$this->assertFalse($asset->isValid());
}
// public function testAnAssetHasRelationships()
// {
// $asset = factory(Asset::class)->create();
// $this->assertInstanceOf(AssetModel::class, $asset->model);
// $this->assertInstanceOf(Company::class, $asset->company);
// $this->assertInstanceOf(App\Models\Depreciation::class, $asset->depreciation);
// $this->assertInstanceOf(App\Models\Statuslabel::class, $asset->assetstatus);
// $this->assertInstanceOf(App\Models\Supplier::class, $asset->supplier);
// }
public function testAnAssetHasRelationships()
{
$asset = factory(Asset::class)->states('laptop-mbp')
->create([
'model_id' => $this->createValidAssetModel()->id,
'company_id' => $this->createValidCompany()->id,
'supplier_id' => $this->createValidSupplier()->id,
]);
$this->assertInstanceOf(AssetModel::class, $asset->model);
$this->assertInstanceOf(Company::class, $asset->company);
$this->assertInstanceOf(App\Models\Depreciation::class, $asset->depreciation);
$this->assertInstanceOf(App\Models\Statuslabel::class, $asset->assetstatus);
$this->assertInstanceOf(App\Models\Supplier::class, $asset->supplier);
}
// public function testAnAssetCanBeAvailableForCheckout()
// {
// // Logic: If the asset is not assigned to anyone,
// // and the statuslabel type is "deployable"
// // and the asset is not deleted
// // Then it is available for checkout
public function testAnAssetCanBeAvailableForCheckout()
{
// Logic: If the asset is not assigned to anyone,
// and the statuslabel type is "deployable"
// and the asset is not deleted
// Then it is available for checkout
// // An asset assigned to someone should not be available for checkout.
// $user = factory(App\Models\User::class)->create();
// $assetAssigned = factory(Asset::class)->create(['assigned_to' => $user->id]);
// $this->assertFalse($assetAssigned->availableForCheckout());
// An asset assigned to someone should not be available for checkout.
$assetAssigned = factory(Asset::class)
->states('laptop-mbp', 'assigned-to-user')
->create(['model_id' => $this->createValidAssetModel()]);
$this->assertFalse($assetAssigned->availableForCheckout());
// // An asset with a non deployable statuslabel should not be available for checkout.
// $status = factory(App\Models\Statuslabel::class)->states('archived')->create();
// $assetUndeployable = factory(Asset::class)->create(['status_id' => $status->id]);
// $this->assertFalse($assetUndeployable->availableForCheckout());
// An asset with a non deployable statuslabel should not be available for checkout.
$assetUndeployable = factory(Asset::class)->create([
'status_id' => $this->createValidStatuslabel('archived')->id,
'model_id' => $this->createValidAssetModel()
]);
// // An asset that has been deleted is not avaiable for checkout.
// $assetDeleted = factory(Asset::class)->states('deleted')->create();
// $this->assertFalse($assetDeleted->availableForCheckout());
$this->assertFalse($assetUndeployable->availableForCheckout());
// // A ready to deploy asset that isn't assigned to anyone is available for checkout
// $status = factory(App\Models\Statuslabel::class)->states('rtd')->create();
// $asset = factory(Asset::class)->create(['status_id' => $status->id]);
// $this->assertTrue($asset->availableForCheckout());
// }
// An asset that has been deleted is not avaiable for checkout.
$assetDeleted = factory(Asset::class)->states('deleted')->create([
'model_id' => $this->createValidAssetModel()
]);
$this->assertFalse($assetDeleted->availableForCheckout());
// public function testAnAssetCanHaveComponents()
// {
// $asset = factory(Asset::class)->create();
// $components = factory(App\Models\Component::class, 5)->create();
// $components->each(function($component) use ($asset) {
// $component->assets()->attach($component, [
// 'asset_id'=>$asset->id
// ]);
// });
// $this->assertInstanceOf(App\Models\Component::class, $asset->components()->first());
// $this->assertCount(5, $asset->components);
// }
// A ready to deploy asset that isn't assigned to anyone is available for checkout
$asset = factory(Asset::class)->create([
'status_id' => $this->createValidStatuslabel('rtd')->id,
'model_id' => $this->createValidAssetModel()
]);
$this->assertTrue($asset->availableForCheckout());
}
// public function testAnAssetCanHaveUploads()
// {
// $asset = factory(Asset::class)->create();
// $this->assertCount(0, $asset->uploads);
// factory(App\Models\Actionlog::class, 'asset-upload')->create(['item_id' => $asset->id]);
// $this->assertCount(1, $asset->fresh()->uploads);
// }
public function testAnAssetCanHaveComponents()
{
$asset = $this->createValidAsset();
// // Helper Method for checking in assets.... We should extract this to the model or a trait.
$components = factory(App\Models\Component::class, 5)->states('ram-crucial4')->create([
'category_id' => $this->createValidCategory('component-hdd-category')->id
]);
// private function checkin($asset, $target) {
// $asset->expected_checkin = null;
// $asset->last_checkout = null;
// $asset->assigned_to = null;
// $asset->assigned_type = null;
// $asset->assignedTo()->disassociate($asset);
// $asset->accepted = null;
// $asset->save();
// $asset->logCheckin($target, 'Test Checkin');
// }
$components->each(function($component) use ($asset) {
$component->assets()->attach($component, [
'asset_id'=>$asset->id
]);
});
$this->assertInstanceOf(App\Models\Component::class, $asset->components()->first());
$this->assertCount(5, $asset->components);
}
// public function testAnAssetCanBeCheckedOut()
// {
// // This tests Asset::checkOut(), Asset::assignedTo(), Asset::assignedAssets(), Asset::assetLoc(), Asset::assignedType(), defaultLoc()
// $asset = factory(Asset::class)->create();
// $adminUser = $this->signIn();
public function testAnAssetCanHaveUploads()
{
$asset = $this->createValidAsset();
$this->assertCount(0, $asset->uploads);
factory(App\Models\Actionlog::class, 'asset-upload')->create(['item_id' => $asset->id]);
$this->assertCount(1, $asset->fresh()->uploads);
}
// $target = factory(App\Models\User::class)->create();
// // An Asset Can be checked out to a user, and this should be logged.
// $asset->checkOut($target, $adminUser);
// $asset->save();
// Helper Method for checking in assets.... We should extract this to the model or a trait.
// $this->assertInstanceOf(App\Models\User::class, $asset->assignedTo);
// $this->assertEquals($asset->assetLoc->id, $target->userLoc->id);
// $this->assertEquals('user', $asset->assignedType());
// $this->assertEquals($asset->defaultLoc->id, $asset->rtd_location_id);
// $this->tester->seeRecord('action_logs', [
// 'action_type' => 'checkout',
// 'target_type' => get_class($target),
// 'target_id' => $target->id
// ]);
private function checkin($asset, $target) {
$asset->expected_checkin = null;
$asset->last_checkout = null;
$asset->assigned_to = null;
$asset->assigned_type = null;
$asset->location_id = $asset->rtd_location_id;
$asset->assignedTo()->disassociate($asset);
$asset->accepted = null;
$asset->save();
$asset->logCheckin($target, 'Test Checkin');
}
// $this->tester->seeRecord('assets', [
// 'id' => $asset->id,
// 'assigned_to' => $target->id,
// 'assigned_type' => User::class
// ]);
public function testAnAssetCanBeCheckedOut()
{
// This tests Asset::checkOut(), Asset::assignedTo(), Asset::assignedAssets(), Asset::assetLoc(), Asset::assignedType(), defaultLoc()
$asset = $this->createValidAsset();
$adminUser = $this->signIn();
// $this->checkin($asset, $target);
// $this->assertNull($asset->fresh()->assignedTo);
$target = factory(App\Models\User::class)->create([
'location_id' => factory(App\Models\Location::class)->create()
]);
// An Asset Can be checked out to a user, and this should be logged.
$asset->checkOut($target, $adminUser);
$asset->save();
$this->assertInstanceOf(App\Models\User::class, $asset->assignedTo);
// $this->tester->seeRecord('action_logs', [
// 'action_type' => 'checkin from',
// 'target_type' => get_class($target),
// 'target_id' => $target->id
// ]);
$this->assertEquals($asset->location->id, $target->userLoc->id);
$this->assertEquals('user', $asset->assignedType());
$this->assertEquals($asset->defaultLoc->id, $asset->rtd_location_id);
$this->tester->seeRecord('action_logs', [
'action_type' => 'checkout',
'target_type' => get_class($target),
'target_id' => $target->id
]);
// $this->tester->seeRecord('assets', [
// 'id' => $asset->id,
// 'assigned_to' => null,
// 'assigned_type' => null
// ]);
$this->tester->seeRecord('assets', [
'id' => $asset->id,
'assigned_to' => $target->id,
'assigned_type' => User::class
]);
// // An Asset Can be checked out to a asset, and this should be logged.
// $target = factory(App\Models\Asset::class)->create();
// $asset->checkOut($target, $adminUser);
// $asset->save();
// $this->assertInstanceOf(App\Models\Asset::class, $asset->fresh()->assignedTo);
// $this->assertEquals($asset->fresh()->assetLoc->id, $target->fresh()->assetLoc->id);
// $this->assertEquals('asset', $asset->assignedType());
// $this->assertEquals($asset->defaultLoc->id, $asset->rtd_location_id);
// $this->tester->seeRecord('action_logs', [
// 'action_type' => 'checkout',
// 'target_type' => get_class($target),
// 'target_id' => $target->id
// ]);
$this->checkin($asset, $target);
$this->assertNull($asset->fresh()->assignedTo);
// $this->assertCount(1, $target->assignedAssets);
// $this->checkin($asset, $target);
// $this->assertNull($asset->fresh()->assignedTo);
$this->tester->seeRecord('action_logs', [
'action_type' => 'checkin from',
'target_type' => get_class($target),
'target_id' => $target->id
]);
// $this->tester->seeRecord('action_logs', [
// 'action_type' => 'checkin from',
// 'target_type' => get_class($target),
// 'target_id' => $target->id
// ]);
$this->tester->seeRecord('assets', [
'id' => $asset->id,
'assigned_to' => null,
'assigned_type' => null
]);
// // An Asset Can be checked out to a location, and this should be logged.
// $target = factory(App\Models\Location::class)->create();
// $asset->checkOut($target, $adminUser);
// $asset->save();
// $this->assertInstanceOf(App\Models\Location::class, $asset->fresh()->assignedTo);
// $this->assertEquals($asset->fresh()->assetLoc->id, $target->fresh()->id);
// $this->assertEquals('location', $asset->assignedType());
// $this->assertEquals($asset->defaultLoc->id, $asset->rtd_location_id);
// $this->tester->seeRecord('action_logs', [
// 'action_type' => 'checkout',
// 'target_type' => get_class($target),
// 'target_id' => $target->id
// ]);
// $this->checkin($asset, $target);
// $this->assertNull($asset->fresh()->assignedTo);
// An Asset Can be checked out to a asset, and this should be logged.
$target = $this->createValidAsset();
// $this->tester->seeRecord('action_logs', [
// 'action_type' => 'checkin from',
// 'target_type' => get_class($target),
// 'target_id' => $target->id
// ]);
// }
$asset->checkOut($target, $adminUser);
$asset->save();
$this->assertInstanceOf(App\Models\Asset::class, $asset->fresh()->assignedTo);
$this->assertEquals($asset->fresh()->location->id, $target->fresh()->location->id);
$this->assertEquals('asset', $asset->assignedType());
$this->assertEquals($asset->defaultLoc->id, $asset->rtd_location_id);
$this->tester->seeRecord('action_logs', [
'action_type' => 'checkout',
'target_type' => get_class($target),
'target_id' => $target->id
]);
// public function testAnAssetHasMaintenances()
// {
// $asset = factory(Asset::class)->create();
// factory(App\Models\AssetMaintenance::class)->create(['asset_id' => $asset->id]);
// $this->assertCount(1, $asset->assetmaintenances);
// }
$this->assertCount(1, $target->assignedAssets);
$this->checkin($asset, $target);
$this->assertNull($asset->fresh()->assignedTo);
// public function testAnAssetThatRequiresAcceptanceCanNotBeCheckedOutToANonUser()
// {
// $this->expectException(CheckoutNotAllowed::class);
// $this->signIn();
$this->tester->seeRecord('action_logs', [
'action_type' => 'checkin from',
'target_type' => get_class($target),
'target_id' => $target->id
]);
// $asset = factory(Asset::class)->states('requires-acceptance')->create();
// An Asset Can be checked out to a location, and this should be logged.
$target = $this->createValidLocation();
// $location = factory(Location::class)->create();
// $asset->checkOut($location);
// }
$asset->checkOut($target, $adminUser);
$asset->save();
$this->assertInstanceOf(App\Models\Location::class, $asset->fresh()->assignedTo);
$this->assertEquals($asset->fresh()->location->id, $target->fresh()->id);
$this->assertEquals('location', $asset->assignedType());
$this->assertEquals($asset->defaultLoc->id, $asset->rtd_location_id);
$this->tester->seeRecord('action_logs', [
'action_type' => 'checkout',
'target_type' => get_class($target),
'target_id' => $target->id
]);
$this->checkin($asset, $target);
$this->assertNull($asset->fresh()->assignedTo);
$this->tester->seeRecord('action_logs', [
'action_type' => 'checkin from',
'target_type' => get_class($target),
'target_id' => $target->id
]);
}
public function testAnAssetHasMaintenances()
{
$asset = $this->createValidAsset();
factory(App\Models\AssetMaintenance::class)->create(['asset_id' => $asset->id]);
$this->assertCount(1, $asset->assetmaintenances);
}
}

View file

@ -22,4 +22,74 @@ class BaseTest extends \Codeception\TestCase\Test
return $user;
}
protected function createValidAssetModel($state = 'mbp-13-model', $overrides = [])
{
return factory(\App\Models\AssetModel::class)->states($state)->create(array_merge([
'category_id' => $this->createValidCategory(),
'manufacturer_id' => $this->createValidManufacturer(),
'depreciation_id' => $this->createValidDepreciation(),
],$overrides));
}
protected function createValidCategory($state = 'asset-laptop-category', $overrides = [])
{
return factory(App\Models\Category::class)->states($state)->create($overrides);
}
protected function createValidCompany($overrides = [])
{
return factory(App\Models\Company::class)->create($overrides);
}
protected function createValidDepartment($state = 'engineering', $overrides = [])
{
return factory(App\Models\Department::class)->states($state)->create(array_merge([
'location_id' => $this->createValidLocation()->id
], $overrides));
}
protected function createValidDepreciation($state = 'computer', $overrides = [])
{
return factory(App\Models\Depreciation::class)->states($state)->create($overrides);
}
protected function createValidLocation($overrides = [])
{
return factory(App\Models\Location::class)->create($overrides);
}
protected function createValidManufacturer($state = 'apple', $overrides = [])
{
return factory(App\Models\Manufacturer::class)->states($state)->create($overrides);
}
protected function createValidSupplier($overrides = [])
{
return factory(App\Models\Supplier::class)->create($overrides);
}
protected function createValidStatuslabel($state = 'rtd', $overrides= [])
{
return factory(App\Models\Statuslabel::class)->states($state)->create($overrides);
}
protected function createValidUser($overrides= [])
{
return factory(App\Models\User::class)->create($overrides);
}
protected function createValidAsset($overrides = [])
{
$locId = $this->createValidLocation();
$this->createValidAssetModel();
return factory(\App\Models\Asset::class)->states('laptop-mbp')->create([
'rtd_location_id' => $locId,
'location_id' => $locId
], $overrides);
}
}

View file

@ -12,84 +12,59 @@ class CategoryTest extends BaseTest
*/
protected $tester;
// public function testAssetCategoryAdd()
// {
// $category = factory(Category::class)->make(['category_type' => 'asset']);
// $values = [
// 'name' => $category->name,
// 'category_type' => $category->category_type,
// 'require_acceptance' => true,
// 'use_default_eula' => false
// ];
public function testFailsEmptyValidation()
{
// An Asset requires a name, a qty, and a category_id.
$a = Category::create();
$this->assertFalse($a->isValid());
// Category::create($values);
// $this->tester->seeRecord('categories', $values);
// }
$fields = [
'name' => 'name',
'category_type' => 'category type'
];
$errors = $a->getErrors();
foreach ($fields as $field => $fieldTitle) {
$this->assertEquals($errors->get($field)[0], "The ${fieldTitle} field is required.");
}
}
// public function testAccessoryCategoryAdd()
// {
// $category = factory(Category::class)->make(['category_type' => 'accessory']);
// $values = [
// 'name' => $category->name,
// 'category_type' => $category->category_type,
// 'require_acceptance' => true,
// 'use_default_eula' => false
// ];
public function testACategoryCanHaveAssets()
{
$this->createValidAssetModel(); //This will seed various things to make the following work better.
$category = $this->createValidCategory('asset-desktop-category');
$models = factory(App\Models\AssetModel::class, 5)->states('mbp-13-model')->create(['category_id' => $category->id]);
// Category::create($values);
// $this->tester->seeRecord('categories', $values);
// }
$this->assertEquals(5, $category->has_models());
$this->assertCount(5, $category->models);
// public function testFailsEmptyValidation()
// {
// // An Asset requires a name, a qty, and a category_id.
// $a = Category::create();
// $this->assertFalse($a->isValid());
$models->each(function($model) {
factory(App\Models\Asset::class, 2)->create(['model_id' => $model->id]);
});
$this->assertEquals(10, $category->itemCount());
}
// $fields = [
// 'name' => 'name',
// 'category_type' => 'category type'
// ];
// $errors = $a->getErrors();
// foreach ($fields as $field => $fieldTitle) {
// $this->assertEquals($errors->get($field)[0], "The ${fieldTitle} field is required.");
// }
// }
public function testACategoryCanHaveAccessories()
{
$category = $this->createValidCategory('accessory-keyboard-category');
factory(App\Models\Accessory::class, 5)->states('apple-bt-keyboard')->create(['category_id' => $category->id]);
// public function testACategoryCanHaveAssets()
// {
// $category = factory(Category::class)->create(['category_type' => 'asset']);
// $models = factory(App\Models\AssetModel::class, 5)->create(['category_id' => $category->id]);
// $this->assertEquals(5, $category->has_models());
// $this->assertCount(5, $category->models);
$this->assertCount(5, $category->accessories);
$this->assertEquals(5, $category->itemCount());
}
// $models->each(function($model) {
// factory(App\Models\Asset::class, 2)->create(['model_id' => $model->id]);
// });
// $this->assertEquals(10, $category->itemCount());
// }
public function testACategoryCanHaveConsumables()
{
$category = $this->createValidCategory('consumable-paper-category');
factory(App\Models\Consumable::class, 5)->states('cardstock')->create(['category_id' => $category->id]);
$this->assertCount(5, $category->consumables);
$this->assertEquals(5, $category->itemCount());
}
// public function testACategoryCanHaveAccessories()
// {
// $category = factory(Category::class)->create(['category_type' => 'accessory']);
// factory(App\Models\Accessory::class, 5)->create(['category_id' => $category->id]);
// $this->assertCount(5, $category->accessories);
// $this->assertEquals(5, $category->itemCount());
// }
// public function testACategoryCanHaveConsumables()
// {
// $category = factory(Category::class)->create(['category_type' => 'consumable']);
// factory(App\Models\Consumable::class, 5)->create(['category_id' => $category->id]);
// $this->assertCount(5, $category->consumables);
// $this->assertEquals(5, $category->itemCount());
// }
// public function testACategoryCanHaveComponents()
// {
// $category = factory(Category::class)->create(['category_type' => 'component']);
// factory(App\Models\Component::class, 5)->create(['category_id' => $category->id]);
// $this->assertCount(5, $category->components);
// $this->assertEquals(5, $category->itemCount());
// }
public function testACategoryCanHaveComponents()
{
$category = $this->createValidCategory('component-ram-category');
factory(App\Models\Component::class, 5)->states('ram-crucial4')->create(['category_id' => $category->id]);
$this->assertCount(5, $category->components);
$this->assertEquals(5, $category->itemCount());
}
}

View file

@ -12,71 +12,78 @@ class CompanyTest extends BaseTest
*/
protected $tester;
// public function testCompanyAdd()
// {
// $company = factory(Company::class)->make();
// $values = [
// 'name' => $company->name,
// ];
// Company::create($values);
// $this->tester->seeRecord('companies', $values);
// }
public function testFailsEmptyValidation()
{
// An Company requires a name, a qty, and a category_id.
$a = Company::create();
$this->assertFalse($a->isValid());
// public function testFailsEmptyValidation()
// {
// // An Company requires a name, a qty, and a category_id.
// $a = Company::create();
// $this->assertFalse($a->isValid());
$fields = [
'name' => 'name',
];
$errors = $a->getErrors();
foreach ($fields as $field => $fieldTitle) {
$this->assertEquals($errors->get($field)[0], "The ${fieldTitle} field is required.");
}
}
// $fields = [
// 'name' => 'name',
// ];
// $errors = $a->getErrors();
// foreach ($fields as $field => $fieldTitle) {
// $this->assertEquals($errors->get($field)[0], "The ${fieldTitle} field is required.");
// }
// }
public function testACompanyCanHaveUsers()
{
$company = $this->createValidCompany();
factory(App\Models\User::class, 1)->create(['company_id'=>$company->id]);
$this->assertCount(1, $company->users);
}
// public function testACompanyCanHaveUsers()
// {
// $company = factory(Company::class)->create();
// factory(App\Models\User::class, 1)->create(['company_id'=>$company->id]);
// $this->assertCount(1, $company->users);
// }
public function testACompanyCanHaveAssets()
{
$company = $this->createValidCompany();
factory(App\Models\Asset::class, 1)->states('laptop-mbp')->create([
'company_id' => $company->id,
'model_id' => $this->createValidAssetModel()->id
]);
$this->assertCount(1, $company->assets);
}
// public function testACompanyCanHaveAssets()
// {
// $company = factory(Company::class)->create();
// factory(App\Models\Asset::class, 1)->create(['company_id'=>$company->id]);
// $this->assertCount(1, $company->assets);
// }
public function testACompanyCanHaveLicenses()
{
$company = $this->createValidCompany();
factory(App\Models\License::class, 1)->states('acrobat')->create([
'company_id'=>$company->id,
'manufacturer_id' => factory(App\Models\Manufacturer::class)->states('adobe')->create()->id,
'category_id' => factory(App\Models\Category::class)->states('license-office-category')->create()->id
]);
$this->assertCount(1, $company->licenses);
}
// public function testACompanyCanHaveLicenses()
// {
// $company = factory(Company::class)->create();
// factory(App\Models\License::class, 1)->create(['company_id'=>$company->id]);
// $this->assertCount(1, $company->licenses);
// }
public function testACompanyCanHaveAccessories()
{
$company = $this->createValidCompany();
$a = factory(App\Models\Accessory::class)->states('apple-bt-keyboard')->create([
'category_id' => factory(App\Models\Category::class)->states('accessory-keyboard-category')->create()->id,
'company_id' => $company->id
]);
// public function testACompanyCanHaveAccessories()
// {
// $company = factory(Company::class)->create();
// factory(App\Models\Accessory::class, 1)->create(['company_id'=>$company->id]);
// $this->assertCount(1, $company->accessories);
// }
$this->assertCount(1, $company->accessories);
}
// public function testACompanyCanHaveConsumables()
// {
// $company = factory(Company::class)->create();
// factory(App\Models\Consumable::class, 1)->create(['company_id'=>$company->id]);
// $this->assertCount(1, $company->consumables);
// }
public function testACompanyCanHaveConsumables()
{
$company = $this->createValidCompany();
factory(App\Models\Consumable::class, 1)->states('cardstock')->create([
'company_id' => $company->id,
'category_id' => factory(App\Models\Category::class)->states('consumable-paper-category')->create()->id
]);
$this->assertCount(1, $company->consumables);
}
// public function testACompanyCanHaveComponents()
// {
// $company = factory(Company::class)->create();
// factory(App\Models\Component::class, 1)->create(['company_id'=>$company->id]);
// $this->assertCount(1, $company->components);
// }
public function testACompanyCanHaveComponents()
{
$company = $this->createValidCompany();
factory(App\Models\Component::class, 1)->states('ram-crucial4')->create([
'company_id'=>$company->id,
'category_id' => factory(App\Models\Category::class)->states('component-ram-category')->create()->id
]);
$this->assertCount(1, $company->components);
}
}

View file

@ -12,45 +12,39 @@ class ConsumableTest extends BaseTest
*/
protected $tester;
// public function testConsumableAdd()
// {
// $consumable = factory(Consumable::class)->make();
// $values = [
// 'name' => $consumable->name,
// 'qty' => $consumable->qty,
// 'category_id' => $consumable->category_id,
// 'company_id' => $consumable->company_id,
// ];
// Consumable::create($values);
// $this->tester->seeRecord('consumables', $values);
// }
public function testFailsEmptyValidation()
{
// An Consumable requires a name, a qty, and a category_id.
$a = Consumable::create();
$this->assertFalse($a->isValid());
// public function testFailsEmptyValidation()
// {
// // An Consumable requires a name, a qty, and a category_id.
// $a = Consumable::create();
// $this->assertFalse($a->isValid());
$fields = [
'name' => 'name',
'qty' => 'qty',
'category_id' => 'category id'
];
$errors = $a->getErrors();
foreach ($fields as $field => $fieldTitle) {
$this->assertEquals($errors->get($field)[0], "The ${fieldTitle} field is required.");
}
}
// $fields = [
// 'name' => 'name',
// 'qty' => 'qty',
// 'category_id' => 'category id'
// ];
// $errors = $a->getErrors();
// foreach ($fields as $field => $fieldTitle) {
// $this->assertEquals($errors->get($field)[0], "The ${fieldTitle} field is required.");
// }
// }
public function testAConsumableHasRelationships()
{
$consumable = factory(Consumable::class)->states('cardstock')->create([
'category_id' => $this->createValidCategory('consumable-paper-category')->id,
'manufacturer_id' => $this->createValidManufacturer('apple')->id,
'company_id' => $this->createValidCompany()->id,
'location_id' => $this->createValidLocation()->id,
'user_id' => $this->signIn()->id
]);
// public function testAConsumableHasRelationships()
// {
// $consumable = factory(Consumable::class)->create();
// $this->assertInstanceOf(App\Models\User::class, $consumable->admin);
// $this->assertInstanceOf(App\Models\Company::class, $consumable->company);
// $this->assertInstanceOf(App\Models\Manufacturer::class, $consumable->manufacturer);
// $this->assertInstanceOf(App\Models\Location::class, $consumable->location);
// $this->assertInstanceOf(App\Models\Category::class, $consumable->category);
// }
$this->assertInstanceOf(App\Models\User::class, $consumable->admin);
$this->assertInstanceOf(App\Models\Company::class, $consumable->company);
$this->assertInstanceOf(App\Models\Manufacturer::class, $consumable->manufacturer);
$this->assertInstanceOf(App\Models\Location::class, $consumable->location);
$this->assertInstanceOf(App\Models\Category::class, $consumable->category);
}
}

View file

@ -11,45 +11,39 @@ class DepreciationTest extends BaseTest
*/
protected $tester;
// public function testDepreciationAdd()
// {
// $depreciations = factory(Depreciation::class)->make();
// $values = [
// 'name' => $depreciations->name,
// 'months' => $depreciations->months,
// ];
public function testFailsEmptyValidation()
{
// An Asset requires a name, a qty, and a category_id.
$a = Depreciation::create();
$this->assertFalse($a->isValid());
// Depreciation::create($values);
// $this->tester->seeRecord('depreciations', $values);
// }
$fields = [
'name' => 'name',
'months' => 'months',
];
$errors = $a->getErrors();
foreach ($fields as $field => $fieldTitle) {
$this->assertEquals($errors->get($field)[0], "The ${fieldTitle} field is required.");
}
}
// public function testFailsEmptyValidation()
// {
// // An Asset requires a name, a qty, and a category_id.
// $a = Depreciation::create();
// $this->assertFalse($a->isValid());
public function testADepreciationHasModels()
{
$this->createValidAssetModel();
$depreciation = $this->createValidDepreciation('computer', ['name' => 'New Depreciation']);
$models = factory(App\Models\AssetModel::class, 5)->states('mbp-13-model')->create(['depreciation_id'=>$depreciation->id]);
$this->assertEquals(5,$depreciation->has_models());
}
// $fields = [
// 'name' => 'name',
// 'months' => 'months',
// ];
// $errors = $a->getErrors();
// foreach ($fields as $field => $fieldTitle) {
// $this->assertEquals($errors->get($field)[0], "The ${fieldTitle} field is required.");
// }
// }
public function testADepreciationHasLicenses()
{
$category = $this->createValidCategory('license-graphics-category');
$depreciation = $this->createValidDepreciation('computer', ['name' => 'New Depreciation']);
$licenses = factory(App\Models\License::class, 5)->states('photoshop')->create([
'depreciation_id'=>$depreciation->id,
'category_id' => $category->id
]);
// public function testADepreciationHasModels()
// {
// $depreciation = factory(Depreciation::class)->create();
// factory(App\Models\AssetModel::class, 5)->create(['depreciation_id'=>$depreciation->id]);
// $this->assertEquals(5,$depreciation->has_models());
// }
// public function testADepreciationHasLicenses()
// {
// $depreciation = factory(Depreciation::class)->create();
// factory(App\Models\License::class, 5)->create(['depreciation_id'=>$depreciation->id]);
// $this->assertEquals(5,$depreciation->has_licenses());
// }
$this->assertEquals(5,$depreciation->has_licenses());
}
}

View file

@ -19,31 +19,17 @@ class NotificationTest extends BaseTest
*/
protected $tester;
// public function testAUserIsEmailedIfTheyCheckoutAnAssetWithEULA()
// {
// $admin = factory(User::class)->states('superuser')->create();
// Auth::login($admin);
// $cat = factory(Category::class)->states('asset-category', 'requires-acceptance')->create();
// $model = factory(AssetModel::class)->create(['category_id' => $cat->id]);
// $asset = factory(Asset::class)->create(['model_id' => $model->id]);
public function testAUserIsEmailedIfTheyCheckoutAnAssetWithEULA()
{
$admin = factory(User::class)->states('superuser')->create();
Auth::login($admin);
$cat = $this->createValidCategory('asset-laptop-category', ['require_acceptance' => true]);
$model = $this->createValidAssetModel('mbp-13-model', ['category_id' => $cat->id]);
$asset = $this->createValidAsset(['model_id' => $model->id]);
$user = factory(User::class)->create();
Notification::fake();
$asset->checkOut($user, 1);
// $user = factory(User::class)->create();
// Notification::fake();
// $asset->checkOut($user, 1);
// Notification::assertSentTo($user, CheckoutNotification::class);
// }
// public function testAnAssetRequiringAEulaDoesNotExplodeWhenCheckedOutToALocation()
// {
// $this->signIn();
// $asset = factory(Asset::class)->states('requires-acceptance')->create();
// $this->expectException(CheckoutNotAllowed::class);
// $location = factory(Location::class)->create();
// Notification::fake();
// $asset->checkOut($location, 1);
// Notification::assertNotSentTo($location, CheckoutNotification::class);
// }
Notification::assertSentTo($user, CheckoutAssetNotification::class);
}
}

View file

@ -12,102 +12,102 @@ class StatuslabelTest extends BaseTest
*/
protected $tester;
// public function testRTDStatuslabelAdd()
// {
// $statuslabel = factory(Statuslabel::class)->states('rtd')->make();
// $values = [
// 'name' => $statuslabel->name,
// 'deployable' => $statuslabel->deployable,
// 'pending' => $statuslabel->pending,
// 'archived' => $statuslabel->archived,
public function testRTDStatuslabelAdd()
{
$statuslabel = factory(Statuslabel::class)->states('rtd')->make();
$values = [
'name' => $statuslabel->name,
'deployable' => $statuslabel->deployable,
'pending' => $statuslabel->pending,
'archived' => $statuslabel->archived,
// ];
];
// Statuslabel::create($values);
// $this->tester->seeRecord('status_labels', $values);
// }
Statuslabel::create($values);
$this->tester->seeRecord('status_labels', $values);
}
// public function testPendingStatuslabelAdd()
// {
// $statuslabel = factory(Statuslabel::class)->states('pending')->make();
// $values = [
// 'name' => $statuslabel->name,
// 'deployable' => $statuslabel->deployable,
// 'pending' => $statuslabel->pending,
// 'archived' => $statuslabel->archived,
// ];
public function testPendingStatuslabelAdd()
{
$statuslabel = factory(Statuslabel::class)->states('pending')->make();
$values = [
'name' => $statuslabel->name,
'deployable' => $statuslabel->deployable,
'pending' => $statuslabel->pending,
'archived' => $statuslabel->archived,
];
// Statuslabel::create($values);
// $this->tester->seeRecord('status_labels', $values);
// }
Statuslabel::create($values);
$this->tester->seeRecord('status_labels', $values);
}
// public function testArchivedStatuslabelAdd()
// {
// $statuslabel = factory(Statuslabel::class)->states('archived')->make();
// $values = [
// 'name' => $statuslabel->name,
// 'deployable' => $statuslabel->deployable,
// 'pending' => $statuslabel->pending,
// 'archived' => $statuslabel->archived,
// ];
public function testArchivedStatuslabelAdd()
{
$statuslabel = factory(Statuslabel::class)->states('archived')->make();
$values = [
'name' => $statuslabel->name,
'deployable' => $statuslabel->deployable,
'pending' => $statuslabel->pending,
'archived' => $statuslabel->archived,
];
// Statuslabel::create($values);
// $this->tester->seeRecord('status_labels', $values);
// }
Statuslabel::create($values);
$this->tester->seeRecord('status_labels', $values);
}
// public function testOutForRepairStatuslabelAdd()
// {
// $statuslabel = factory(Statuslabel::class)->states('out_for_repair')->make();
// $values = [
// 'name' => $statuslabel->name,
// 'deployable' => $statuslabel->deployable,
// 'pending' => $statuslabel->pending,
// 'archived' => $statuslabel->archived,
// ];
public function testOutForRepairStatuslabelAdd()
{
$statuslabel = factory(Statuslabel::class)->states('out_for_repair')->make();
$values = [
'name' => $statuslabel->name,
'deployable' => $statuslabel->deployable,
'pending' => $statuslabel->pending,
'archived' => $statuslabel->archived,
];
// Statuslabel::create($values);
// $this->tester->seeRecord('status_labels', $values);
// }
Statuslabel::create($values);
$this->tester->seeRecord('status_labels', $values);
}
// public function testOutForDiagnosticsStatuslabelAdd()
// {
// $statuslabel = factory(Statuslabel::class)->states('out_for_diagnostics')->make();
// $values = [
// 'name' => $statuslabel->name,
// 'deployable' => $statuslabel->deployable,
// 'pending' => $statuslabel->pending,
// 'archived' => $statuslabel->archived,
// ];
public function testOutForDiagnosticsStatuslabelAdd()
{
$statuslabel = factory(Statuslabel::class)->states('out_for_diagnostics')->make();
$values = [
'name' => $statuslabel->name,
'deployable' => $statuslabel->deployable,
'pending' => $statuslabel->pending,
'archived' => $statuslabel->archived,
];
// Statuslabel::create($values);
// $this->tester->seeRecord('status_labels', $values);
// }
Statuslabel::create($values);
$this->tester->seeRecord('status_labels', $values);
}
// public function testBrokenStatuslabelAdd()
// {
// $statuslabel = factory(Statuslabel::class)->states('broken')->make();
// $values = [
// 'name' => $statuslabel->name,
// 'deployable' => $statuslabel->deployable,
// 'pending' => $statuslabel->pending,
// 'archived' => $statuslabel->archived,
// ];
public function testBrokenStatuslabelAdd()
{
$statuslabel = factory(Statuslabel::class)->states('broken')->make();
$values = [
'name' => $statuslabel->name,
'deployable' => $statuslabel->deployable,
'pending' => $statuslabel->pending,
'archived' => $statuslabel->archived,
];
// Statuslabel::create($values);
// $this->tester->seeRecord('status_labels', $values);
// }
Statuslabel::create($values);
$this->tester->seeRecord('status_labels', $values);
}
// public function testLostStatuslabelAdd()
// {
// $statuslabel = factory(Statuslabel::class)->states('lost')->make();
// $values = [
// 'name' => $statuslabel->name,
// 'deployable' => $statuslabel->deployable,
// 'pending' => $statuslabel->pending,
// 'archived' => $statuslabel->archived,
// ];
public function testLostStatuslabelAdd()
{
$statuslabel = factory(Statuslabel::class)->states('lost')->make();
$values = [
'name' => $statuslabel->name,
'deployable' => $statuslabel->deployable,
'pending' => $statuslabel->pending,
'archived' => $statuslabel->archived,
];
// Statuslabel::create($values);
// $this->tester->seeRecord('status_labels', $values);
// }
Statuslabel::create($values);
$this->tester->seeRecord('status_labels', $values);
}
}