mirror of
https://github.com/snipe/snipe-it.git
synced 2024-12-27 14:39:49 -08:00
bb874012d9
Working mail from notification. Still requires testing/cleaning Add tests around checkout notification. This also removes the ability to check out an asset to a location|asset that requires acceptance/a Eula. For 4.1 we may think about how to support such a thing, but at present it seems to make sense to only alow such assets to be checked out to users, who can be responsible for the items.
557 lines
21 KiB
PHP
557 lines
21 KiB
PHP
<?php
|
|
use App\Importer\AccessoryImporter;
|
|
use App\Importer\AssetImporter;
|
|
use App\Importer\LicenseImporter;
|
|
use App\Importer\ConsumableImporter;
|
|
use App\Models\Accessory;
|
|
use App\Models\AssetModel;
|
|
use App\Models\Category;
|
|
use Illuminate\Foundation\Testing\DatabaseMigrations;
|
|
use Illuminate\Foundation\Testing\DatabaseTransactions;
|
|
use Illuminate\Foundation\Testing\WithoutMiddleware;
|
|
use Illuminate\Support\Facades\Hash;
|
|
|
|
class ImporterTest extends BaseTest
|
|
{
|
|
/**
|
|
* @var \UnitTester
|
|
*/
|
|
protected $tester;
|
|
|
|
// public function testDefaultImportAsset()
|
|
// {
|
|
// $csv = <<<'EOT'
|
|
// Name,Email,Username,item Name,Category,Model name,Manufacturer,Model Number,Serial number,Asset Tag,Location,Notes,Purchase Date,Purchase Cost,Company,Status,Warranty,Supplier
|
|
// Bonnie Nelson,bnelson0@cdbaby.com,bnelson0,eget nunc donec quis,quam,massa id,Linkbridge,6377018600094472,27aa8378-b0f4-4289-84a4-405da95c6147,970882174-8,Daping,"Curabitur in libero ut massa volutpat convallis. Morbi odio odio, elementum eu, interdum eu, tincidunt in, leo. Maecenas pulvinar lobortis est.",2016-04-05,133289.59,Alpha,Undeployable,14,Blogspan
|
|
// EOT;
|
|
// $this->import(new AssetImporter($csv));
|
|
// // Did we create a user?
|
|
|
|
// $this->tester->seeRecord('users', [
|
|
// 'first_name' => 'Bonnie',
|
|
// 'last_name' => 'Nelson',
|
|
// 'email' => 'bnelson0@cdbaby.com',
|
|
// ]);
|
|
// $this->tester->seeRecord('categories', [
|
|
// 'name' => 'quam'
|
|
// ]);
|
|
|
|
// $this->tester->seeRecord('models', [
|
|
// 'name' => 'massa id',
|
|
// 'model_number' => 6377018600094472
|
|
// ]);
|
|
|
|
// $this->tester->seeRecord('manufacturers', [
|
|
// 'name' => 'Linkbridge'
|
|
// ]);
|
|
|
|
// $this->tester->seeRecord('locations', [
|
|
// 'name' => 'Daping'
|
|
// ]);
|
|
|
|
// $this->tester->seeRecord('companies', [
|
|
// 'name' => 'Alpha'
|
|
// ]);
|
|
|
|
// $this->tester->seeRecord('status_labels', [
|
|
// 'name' => 'Undeployable'
|
|
// ]);
|
|
|
|
// $this->tester->seeRecord('suppliers', [
|
|
// 'name' => 'Blogspan'
|
|
// ]);
|
|
// $this->tester->seeRecord('assets', [
|
|
// 'name' => 'eget nunc donec quis',
|
|
// 'serial' => '27aa8378-b0f4-4289-84a4-405da95c6147',
|
|
// 'asset_tag' => '970882174-8',
|
|
// 'notes' => "Curabitur in libero ut massa volutpat convallis. Morbi odio odio, elementum eu, interdum eu, tincidunt in, leo. Maecenas pulvinar lobortis est.",
|
|
// 'purchase_date' => '2016-04-05 00:00:01',
|
|
// 'purchase_cost' => 133289.59,
|
|
// 'warranty_months' => 14
|
|
// ]);
|
|
// }
|
|
|
|
// public function testUpdateAsset()
|
|
// {
|
|
// $csv = <<<'EOT'
|
|
// Name,Email,Username,item Name,Category,Model name,Manufacturer,Model Number,Serial number,Asset Tag,Location,Notes,Purchase Date,Purchase Cost,Company,Status,Warranty,Supplier
|
|
// Bonnie Nelson,bnelson0@cdbaby.com,bnelson0,eget nunc donec quis,quam,massa id,Linkbridge,6377018600094472,27aa8378-b0f4-4289-84a4-405da95c6147,970882174-8,Daping,"Curabitur in libero ut massa volutpat convallis. Morbi odio odio, elementum eu, interdum eu, tincidunt in, leo. Maecenas pulvinar lobortis est.",2016-04-05,133289.59,Alpha,Undeployable,14,Blogspan
|
|
// EOT;
|
|
// $this->import(new AssetImporter($csv));
|
|
// $updatedCSV = <<<'EOT'
|
|
// item Name,Category,Model name,Manufacturer,Model Number,Serial number,Asset Tag,Location,Notes,Purchase Date,Purchase Cost,Company,Status,Warranty,Supplier
|
|
// A new name,some other category,Another Model,Linkbridge 32,356,67433477,970882174-8,New Location,I have no notes,2018-04-05,25.59,Another Company,Ready To Go,18,Not Creative
|
|
// EOT;
|
|
// $importer = new AssetImporter($updatedCSV);
|
|
// $importer->setUserId(1)
|
|
// ->setUpdating(true)
|
|
// ->setUsernameFormat('firstname.lastname')
|
|
// ->import();
|
|
|
|
// $this->tester->seeRecord('categories', [
|
|
// 'name' => 'some other category'
|
|
// ]);
|
|
|
|
// $this->tester->seeRecord('models', [
|
|
// 'name' => 'Another Model',
|
|
// 'model_number' => 356
|
|
// ]);
|
|
|
|
// $this->tester->seeRecord('manufacturers', [
|
|
// 'name' => 'Linkbridge 32'
|
|
// ]);
|
|
|
|
// $this->tester->seeRecord('locations', [
|
|
// 'name' => 'New Location'
|
|
// ]);
|
|
|
|
// $this->tester->seeRecord('companies', [
|
|
// 'name' => 'Another Company'
|
|
// ]);
|
|
|
|
// $this->tester->seeRecord('status_labels', [
|
|
// 'name' => 'Ready To Go'
|
|
// ]);
|
|
|
|
// $this->tester->seeRecord('suppliers', [
|
|
// 'name' => 'Not Creative'
|
|
// ]);
|
|
|
|
// $this->tester->seeRecord('assets', [
|
|
// 'name' => 'A new name',
|
|
// 'serial' => '67433477',
|
|
// 'asset_tag' => '970882174-8',
|
|
// 'notes' => "I have no notes",
|
|
// 'purchase_date' => '2018-04-05 00:00:01',
|
|
// 'purchase_cost' => 25.59,
|
|
// 'warranty_months' => 18
|
|
// ]);
|
|
// }
|
|
|
|
// public function testCustomMappingImport()
|
|
// {
|
|
// $csv = <<<'EOT'
|
|
// Name,Email,Username,object name,Cat,Model name,Manufacturer,Model Number,Serial number,Asset,Loc,Some Notes,Purchase Date,Purchase Cost,comp,Status,Warranty,Supplier
|
|
// Bonnie Nelson,bnelson0@cdbaby.com,bnelson0,eget nunc donec quis,quam,massa id,Linkbridge,6377018600094472,27aa8378-b0f4-4289-84a4-405da95c6147,970882174-8,Daping,"Curabitur in libero ut massa volutpat convallis. Morbi odio odio, elementum eu, interdum eu, tincidunt in, leo. Maecenas pulvinar lobortis est.",2016-04-05,133289.59,Alpha,Undeployable,14,Blogspan
|
|
// EOT;
|
|
|
|
// $customFieldMap = [
|
|
// 'asset_tag' => 'Asset',
|
|
// 'category' => 'Cat',
|
|
// 'company' => 'comp',
|
|
// 'item_name' => 'object name',
|
|
// 'expiration_date' => 'expiration date',
|
|
// 'location' => 'loc',
|
|
// 'notes' => 'Some Notes',
|
|
// 'asset_model' => "model name",
|
|
// ];
|
|
|
|
// $this->import(new AssetImporter($csv), $customFieldMap);
|
|
// // Did we create a user?
|
|
|
|
// $this->tester->seeRecord('users', [
|
|
// 'first_name' => 'Bonnie',
|
|
// 'last_name' => 'Nelson',
|
|
// 'email' => 'bnelson0@cdbaby.com',
|
|
// ]);
|
|
|
|
// $this->tester->seeRecord('categories', [
|
|
// 'name' => 'quam'
|
|
// ]);
|
|
|
|
// $this->tester->seeRecord('models', [
|
|
// 'name' => 'massa id',
|
|
// 'model_number' => 6377018600094472
|
|
// ]);
|
|
|
|
// $this->tester->seeRecord('manufacturers', [
|
|
// 'name' => 'Linkbridge'
|
|
// ]);
|
|
|
|
// $this->tester->seeRecord('locations', [
|
|
// 'name' => 'Daping'
|
|
// ]);
|
|
|
|
// $this->tester->seeRecord('companies', [
|
|
// 'name' => 'Alpha'
|
|
// ]);
|
|
|
|
// $this->tester->seeRecord('status_labels', [
|
|
// 'name' => 'Undeployable'
|
|
// ]);
|
|
|
|
// $this->tester->seeRecord('suppliers', [
|
|
// 'name' => 'Blogspan'
|
|
// ]);
|
|
// $this->tester->seeRecord('assets', [
|
|
// 'name' => 'eget nunc donec quis',
|
|
// 'serial' => '27aa8378-b0f4-4289-84a4-405da95c6147',
|
|
// 'asset_tag' => '970882174-8',
|
|
// 'notes' => "Curabitur in libero ut massa volutpat convallis. Morbi odio odio, elementum eu, interdum eu, tincidunt in, leo. Maecenas pulvinar lobortis est.",
|
|
// 'purchase_date' => '2016-04-05 00:00:01',
|
|
// 'purchase_cost' => 133289.59,
|
|
// 'warranty_months' => 14
|
|
// ]);
|
|
// }
|
|
|
|
public function testDefaultAccessoryImport()
|
|
{
|
|
$csv = <<<'EOT'
|
|
Item Name,Purchase Date,Purchase Cost,Location,Company,Order Number,Category,Requestable,Quantity
|
|
Walter Carter,09/01/2006,,metus. Vivamus,Macromedia,J935H60W,Customers,False,278
|
|
EOT;
|
|
$this->import(new AccessoryImporter($csv));
|
|
$this->tester->seeRecord('accessories', [
|
|
'name' => 'Walter Carter',
|
|
'purchase_date' => '2006-09-01 00:00:01',
|
|
'order_number' => 'J935H60W',
|
|
'requestable' => 0,
|
|
'qty' => 278
|
|
]);
|
|
|
|
$this->tester->seeRecord('locations', [
|
|
'name' => 'metus. Vivamus'
|
|
]);
|
|
|
|
$this->tester->seeRecord('companies', [
|
|
'name' => 'Macromedia'
|
|
]);
|
|
|
|
$this->tester->seeRecord('categories', [
|
|
'name' => 'Customers'
|
|
]);
|
|
|
|
}
|
|
|
|
public function testDefaultAccessoryUpdate()
|
|
{
|
|
$csv = <<<'EOT'
|
|
Item Name,Purchase Date,Purchase Cost,Location,Company,Order Number,Category,Requestable,Quantity
|
|
Walter Carter,09/01/2006,,metus. Vivamus,Macromedia,J935H60W,Customers,False,278
|
|
EOT;
|
|
$this->import(new AccessoryImporter($csv));
|
|
$this->tester->seeNumRecords(1, 'accessories');
|
|
|
|
|
|
$updatedCSV = <<<'EOT'
|
|
Item Name,Purchase Date,Purchase Cost,Location,Company,Order Number,Category,Requestable,Quantity
|
|
Walter Carter,09/01/2015,350,metus. Vivamus,Macromedia,35GGH,Customers,True,12
|
|
EOT;
|
|
$importer = new AccessoryImporter($updatedCSV);
|
|
$importer->setUserId(1)
|
|
->setUpdating(true)
|
|
->import();
|
|
// At this point we should still only have one record.
|
|
$this->tester->seeNumRecords(1, 'accessories');
|
|
// But instead these.
|
|
$this->tester->seeRecord('accessories', [
|
|
'name' => 'Walter Carter',
|
|
'purchase_date' => '2015-09-01 00:00:01',
|
|
'order_number' => '35GGH',
|
|
'requestable' => 1,
|
|
'qty' => 12
|
|
]);
|
|
}
|
|
|
|
public function testCustomAccessoryImport()
|
|
{
|
|
$csv = <<<'EOT'
|
|
Name,Pur Date,Cost,Loc,Comp,Order Num,Cat,Request,Quan
|
|
Walter Carter,09/01/2006,,metus. Vivamus,Macromedia,J935H60W,Customers,False,278
|
|
EOT;
|
|
|
|
$customFieldMap = [
|
|
'category' => 'Cat',
|
|
'company' => 'Comp',
|
|
'item_name' => 'Name',
|
|
'location' => 'Loc',
|
|
'purchase_date' => 'Pur Date',
|
|
'purchase_cost' => "Cost",
|
|
'order_number' => 'Order Num',
|
|
'requestable' => 'Request',
|
|
'quantity' => 'Quan'
|
|
];
|
|
$this->import(new AccessoryImporter($csv), $customFieldMap);
|
|
// dd($this->tester->grabRecord('accessories'));
|
|
$this->tester->seeRecord('accessories', [
|
|
'name' => 'Walter Carter',
|
|
'purchase_date' => '2006-09-01 00:00:01',
|
|
'order_number' => 'J935H60W',
|
|
'requestable' => 0,
|
|
'qty' => 278
|
|
]);
|
|
|
|
$this->tester->seeRecord('locations', [
|
|
'name' => 'metus. Vivamus'
|
|
]);
|
|
|
|
$this->tester->seeRecord('companies', [
|
|
'name' => 'Macromedia'
|
|
]);
|
|
|
|
$this->tester->seeRecord('categories', [
|
|
'name' => 'Customers'
|
|
]);
|
|
|
|
}
|
|
|
|
public function testDefaultConsumableImport()
|
|
{
|
|
$csv = <<<'EOT'
|
|
Item Name,Purchase Date,Purchase Cost,Location,Company,Order Number,Category,Requestable,Quantity
|
|
eget,01/03/2011,$85.91,mauris blandit mattis.,Lycos,T295T06V,Triamterene/Hydrochlorothiazide,No,322
|
|
EOT;
|
|
$this->import(new ConsumableImporter($csv));
|
|
// dd($this->tester->grabRecord('consumables'));
|
|
$this->tester->seeRecord('consumables', [
|
|
'name' => 'eget',
|
|
'purchase_date' => '2011-01-03 00:00:01',
|
|
'purchase_cost' => 85.91,
|
|
'order_number' => 'T295T06V',
|
|
'requestable' => 0,
|
|
'qty' => 322
|
|
]);
|
|
|
|
$this->tester->seeRecord('locations', [
|
|
'name' => 'mauris blandit mattis.'
|
|
]);
|
|
|
|
$this->tester->seeRecord('companies', [
|
|
'name' => 'Lycos'
|
|
]);
|
|
|
|
$this->tester->seeRecord('categories', [
|
|
'name' => 'Triamterene/Hydrochlorothiazide'
|
|
]);
|
|
|
|
}
|
|
|
|
public function testDefaultConsumableUpdate()
|
|
{
|
|
$csv = <<<'EOT'
|
|
Item Name,Purchase Date,Purchase Cost,Location,Company,Order Number,Category,Requestable,Quantity
|
|
eget,01/03/2011,85.91,mauris blandit mattis.,Lycos,T295T06V,Triamterene/Hydrochlorothiazide,No,322
|
|
EOT;
|
|
$this->import(new ConsumableImporter($csv));
|
|
$this->tester->seeNumRecords(1, 'consumables');
|
|
|
|
|
|
$updatedCSV = <<<'EOT'
|
|
Item Name,Purchase Date,Purchase Cost,Location,Company,Order Number,Category,Requestable,Quantity
|
|
eget,12/05/2016,35.45,mauris blandit mattis.,Lycos,3666FF,New Cat,Yes,15
|
|
EOT;
|
|
$importer = new ConsumableImporter($updatedCSV);
|
|
$importer->setUserId(1)
|
|
->setUpdating(true)
|
|
->import();
|
|
// At this point we should still only have one record.
|
|
$this->tester->seeNumRecords(1, 'consumables');
|
|
// But instead these.
|
|
$this->tester->seeRecord('consumables', [
|
|
'name' => 'eget',
|
|
'purchase_date' => '2016-12-05 00:00:01',
|
|
'purchase_cost' => 35.45,
|
|
'order_number' => '3666FF',
|
|
'requestable' => 1,
|
|
'qty' => 15
|
|
]);
|
|
}
|
|
|
|
public function testCustomConsumableImport()
|
|
{
|
|
$csv = <<<'EOT'
|
|
Name,pur Date,Pur Cost,Loc,Comp,Order Num,Kat,Request,Quan
|
|
eget,01/03/2011,85.91,mauris blandit mattis.,Lycos,T295T06V,Triamterene/Hydrochlorothiazide,No,322
|
|
EOT;
|
|
|
|
$customFieldMap = [
|
|
'category' => 'Kat',
|
|
'company' => 'Comp',
|
|
'item_name' => 'Name',
|
|
'location' => 'Loc',
|
|
'purchase_date' => 'Pur date',
|
|
'purchase_cost' => "Pur Cost",
|
|
'order_number' => 'Order Num',
|
|
'requestable' => 'Request',
|
|
'quantity' => 'Quan'
|
|
];
|
|
$this->import(new ConsumableImporter($csv), $customFieldMap);
|
|
$this->tester->seeRecord('consumables', [
|
|
'name' => 'eget',
|
|
'purchase_date' => '2011-01-03 00:00:01',
|
|
'purchase_cost' => 85.91,
|
|
'order_number' => 'T295T06V',
|
|
'requestable' => 0,
|
|
'qty' => 322
|
|
]);
|
|
|
|
$this->tester->seeRecord('locations', [
|
|
'name' => 'mauris blandit mattis.'
|
|
]);
|
|
|
|
$this->tester->seeRecord('companies', [
|
|
'name' => 'Lycos'
|
|
]);
|
|
|
|
$this->tester->seeRecord('categories', [
|
|
'name' => 'Triamterene/Hydrochlorothiazide'
|
|
]);
|
|
|
|
}
|
|
|
|
public function testDefaultLicenseImport()
|
|
{
|
|
$csv = <<<'EOT'
|
|
Name,Email,Username,Item name,serial number,manufacturer,purchase date,purchase cost,purchase order,order number,Licensed To Name,Licensed to Email,expiration date,maintained,reassignable,seats,company,supplier,notes
|
|
Helen Anderson,cspencer0@privacy.gov.au,cspencer0,Argentum Malachite Athletes Foot Relief,1aa5b0eb-79c5-40b2-8943-5472a6893c3c,"Beer, Leannon and Lubowitz",07/13/2012,$79.66,53008,386436062-5,Cynthia Spencer,cspencer0@gov.uk,01/27/2016,false,no,80,"Haag, Schmidt and Farrell","Hegmann, Mohr and Cremin",Sed ante. Vivamus tortor. Duis mattis egestas metus.
|
|
EOT;
|
|
$this->import(new LicenseImporter($csv));
|
|
// dd($this->tester->grabRecord('licenses'));
|
|
|
|
$this->tester->seeRecord('licenses', [
|
|
'name' => 'Argentum Malachite Athletes Foot Relief',
|
|
'purchase_date' => '2012-07-13 00:00:01',
|
|
'seats' => 80,
|
|
'license_email' => 'cspencer0@gov.uk',
|
|
'order_number' => '386436062-5',
|
|
'license_name' => 'Cynthia Spencer',
|
|
'expiration_date' => '2016-01-27',
|
|
'maintained' => 0,
|
|
'notes' => 'Sed ante. Vivamus tortor. Duis mattis egestas metus.',
|
|
'purchase_cost' => 79.66,
|
|
'purchase_order' => "53008",
|
|
'reassignable' => 0,
|
|
'serial' => '1aa5b0eb-79c5-40b2-8943-5472a6893c3c',
|
|
]);
|
|
|
|
$this->tester->seeRecord('manufacturers', [
|
|
'name' => 'Beer, Leannon and Lubowitz'
|
|
]);
|
|
|
|
$this->tester->seeRecord('suppliers', [
|
|
'name' => "Hegmann, Mohr and Cremin",
|
|
]);
|
|
|
|
$this->tester->seeRecord('companies', [
|
|
'name' => 'Haag, Schmidt and Farrell'
|
|
]);
|
|
|
|
$this->tester->seeNumRecords(80, 'license_seats');
|
|
|
|
}
|
|
|
|
public function testDefaultLicenseUpdate()
|
|
{
|
|
$csv = <<<'EOT'
|
|
Name,Email,Username,Item name,serial number,manufacturer,purchase date,purchase cost,purchase order,order number,Licensed To Name,Licensed to Email,expiration date,maintained,reassignable,seats,company,supplier,notes
|
|
Helen Anderson,cspencer0@privacy.gov.au,cspencer0,Argentum Malachite Athletes Foot Relief,1aa5b0eb-79c5-40b2-8943-5472a6893c3c,"Beer, Leannon and Lubowitz",07/13/2012,$79.66,53008,386436062-5,Cynthia Spencer,cspencer0@gov.uk,01/27/2016,false,no,80,"Haag, Schmidt and Farrell","Hegmann, Mohr and Cremin",Sed ante. Vivamus tortor. Duis mattis egestas metus.
|
|
EOT;
|
|
$this->import(new LicenseImporter($csv));
|
|
$this->tester->seeNumRecords(1, 'licenses');
|
|
|
|
|
|
$updatedCSV = <<<'EOT'
|
|
Item name,serial number,manufacturer,purchase date,purchase cost,purchase order,order number,Licensed To Name,Licensed to Email,expiration date,maintained,reassignable,seats,company,supplier,notes
|
|
Argentum Malachite Athletes Foot Relief,7435753-467734,"Beer, Leannon and Lubowitz",05/15/2019,$1865.34,63 ar,18334,A Legend,Legendary@gov.uk,04/27/2016,yes,true,64,"Haag, Schmidt and Farrell","Hegmann, Mohr and Cremin",Sed ante. Vivamus tortor. Duis mattis egestas metus.
|
|
EOT;
|
|
$importer = new LicenseImporter($updatedCSV);
|
|
$importer->setUserId(1)
|
|
->setUpdating(true)
|
|
->import();
|
|
// At this point we should still only have one record.
|
|
$this->tester->seeNumRecords(1, 'licenses');
|
|
// But instead these.
|
|
// dd($this->tester->grabRecord('licenses'));
|
|
$this->tester->seeRecord('licenses', [
|
|
'name' => 'Argentum Malachite Athletes Foot Relief',
|
|
'purchase_date' => '2019-05-15 00:00:01',
|
|
'seats' => 64,
|
|
'license_email' => 'Legendary@gov.uk',
|
|
'order_number' => '18334',
|
|
'license_name' => 'A Legend',
|
|
'expiration_date' => '2016-04-27',
|
|
'maintained' => 1,
|
|
'notes' => 'Sed ante. Vivamus tortor. Duis mattis egestas metus.',
|
|
'purchase_cost' => 1865.34,
|
|
'purchase_order' => "63 ar",
|
|
'reassignable' => 1,
|
|
'serial' => '7435753-467734',
|
|
]);
|
|
// License seats are soft deleted
|
|
$this->tester->seeNumRecords(64, 'license_seats', ['deleted_at' => null]);
|
|
}
|
|
|
|
public function testCustomLicenseImport()
|
|
{
|
|
$csv = <<<'EOT'
|
|
Name,Email,Username,Object name,serial num,manuf,pur date,pur cost,purc order,order num,Licensed To,Licensed Email,expire date,maint,reass,seat,comp,supplier,note
|
|
Helen Anderson,cspencer0@privacy.gov.au,cspencer0,Argentum Malachite Athletes Foot Relief,1aa5b0eb-79c5-40b2-8943-5472a6893c3c,"Beer, Leannon and Lubowitz",07/13/2012,$79.66,53008,386436062-5,Cynthia Spencer,cspencer0@gov.uk,01/27/2016,false,no,80,"Haag, Schmidt and Farrell","Hegmann, Mohr and Cremin",Sed ante. Vivamus tortor. Duis mattis egestas metus.
|
|
EOT;
|
|
|
|
$customFieldMap = [
|
|
'company' => 'Comp',
|
|
'expiration_date' => 'expire date',
|
|
'item_name' => 'Object Name',
|
|
'license_email' => 'licensed email',
|
|
'license_name' => 'licensed to',
|
|
'maintained' => 'maint',
|
|
'manufacturer' => 'manuf',
|
|
'notes' => 'note',
|
|
'order_number' => 'Order Num',
|
|
'purchase_cost' => "Pur Cost",
|
|
'purchase_date' => 'Pur date',
|
|
'purchase_order' => "Purc Order",
|
|
'quantity' => 'Quan',
|
|
'reassignable' => 'reass',
|
|
'requestable' => 'Request',
|
|
'seats' => 'seat',
|
|
'serial_number' => 'serial num',
|
|
];
|
|
$this->import(new LicenseImporter($csv), $customFieldMap);
|
|
// dd($this->tester->grabRecord('licenses'));
|
|
$this->tester->seeRecord('licenses', [
|
|
'name' => 'Argentum Malachite Athletes Foot Relief',
|
|
'purchase_date' => '2012-07-13 00:00:01',
|
|
'seats' => 80,
|
|
'license_email' => 'cspencer0@gov.uk',
|
|
'order_number' => '386436062-5',
|
|
'license_name' => 'Cynthia Spencer',
|
|
'expiration_date' => '2016-01-27',
|
|
'maintained' => 0,
|
|
'notes' => 'Sed ante. Vivamus tortor. Duis mattis egestas metus.',
|
|
'purchase_cost' => 79.66,
|
|
'purchase_order' => "53008",
|
|
'reassignable' => 0,
|
|
'serial' => '1aa5b0eb-79c5-40b2-8943-5472a6893c3c',
|
|
]);
|
|
|
|
$this->tester->seeRecord('manufacturers', [
|
|
'name' => 'Beer, Leannon and Lubowitz'
|
|
]);
|
|
|
|
$this->tester->seeRecord('suppliers', [
|
|
'name' => "Hegmann, Mohr and Cremin",
|
|
]);
|
|
|
|
$this->tester->seeRecord('companies', [
|
|
'name' => 'Haag, Schmidt and Farrell'
|
|
]);
|
|
|
|
$this->tester->seeNumRecords(80, 'license_seats');
|
|
|
|
}
|
|
|
|
private function import($importer, $mappings = null)
|
|
{
|
|
if ($mappings) {
|
|
$importer->setFieldMappings($mappings);
|
|
}
|
|
dd($this);
|
|
|
|
$importer->setUserId(1)
|
|
->setUpdating(false)
|
|
->setUsernameFormat('firstname.lastname')
|
|
->import();
|
|
}
|
|
}
|