| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125 | 
							- <?php
 
- namespace Tests;
 
- use App\Shop\Addresses\Address;
 
- use App\Shop\Categories\Category;
 
- use App\Shop\Countries\Country;
 
- use App\Shop\Couriers\Courier;
 
- use App\Shop\Couriers\Repositories\CourierRepository;
 
- use App\Shop\Employees\Employee;
 
- use App\Shop\Customers\Customer;
 
- use App\Shop\Employees\Repositories\EmployeeRepository;
 
- use App\Shop\OrderStatuses\OrderStatus;
 
- use App\Shop\OrderStatuses\Repositories\OrderStatusRepository;
 
- use App\Shop\Permissions\Permission;
 
- use App\Shop\Products\Product;
 
- use App\Shop\Roles\Repositories\RoleRepository;
 
- use App\Shop\Roles\Role;
 
- use Gloudemans\Shoppingcart\Cart;
 
- use Illuminate\Foundation\Testing\DatabaseMigrations;
 
- use Illuminate\Foundation\Testing\DatabaseTransactions;
 
- use Illuminate\Foundation\Testing\TestCase as BaseTestCase;
 
- use Faker\Factory as Faker;
 
- abstract class TestCase extends BaseTestCase
 
- {
 
-     use CreatesApplication, DatabaseMigrations, DatabaseTransactions;
 
-     protected $faker;
 
-     protected $employee;
 
-     protected $customer;
 
-     protected $address;
 
-     protected $product;
 
-     protected $category;
 
-     protected $country;
 
-     protected $province;
 
-     protected $city;
 
-     protected $courier;
 
-     protected $orderStatus;
 
-     protected $cart;
 
-     protected $role;
 
-     /**
 
-      * Set up the test
 
-      */
 
-     public function setUp()
 
-     {
 
-         parent::setUp();
 
-         $this->faker = Faker::create();
 
-         $this->employee = factory(Employee::class)->create();
 
-         $adminData = ['name' => 'admin'];
 
-         $roleRepo = new RoleRepository(new Role);
 
-         $admin = $roleRepo->createRole($adminData);
 
-         $this->role = $admin;
 
-         $createProductPerm = factory(Permission::class)->create([
 
-             'name' => 'create-product',
 
-             'display_name' => 'Create product'
 
-         ]);
 
-         $viewProductPerm = factory(Permission::class)->create([
 
-             'name' => 'view-product',
 
-             'display_name' => 'View product'
 
-         ]);
 
-         $updateProductPerm = factory(Permission::class)->create([
 
-             'name' => 'update-product',
 
-             'display_name' => 'Update product'
 
-         ]);
 
-         $deleteProductPerm = factory(Permission::class)->create([
 
-             'name' => 'delete-product',
 
-             'display_name' => 'Delete product'
 
-         ]);
 
-         $roleSuperRepo = new RoleRepository($admin);
 
-         $roleSuperRepo->attachToPermission($createProductPerm);
 
-         $roleSuperRepo->attachToPermission($viewProductPerm);
 
-         $roleSuperRepo->attachToPermission($updateProductPerm);
 
-         $roleSuperRepo->attachToPermission($deleteProductPerm);
 
-         $employeeRepo = new EmployeeRepository($this->employee);
 
-         $employeeRepo->syncRoles([$admin->id]);
 
-         $this->product = factory(Product::class)->create();
 
-         $this->category = factory(Category::class)->create();
 
-         $this->customer = factory(Customer::class)->create();
 
-         $this->country = factory(Country::class)->create();
 
-         $this->address = factory(Address::class)->create();
 
-         $courierData = [
 
-             'name' => $this->faker->word,
 
-             'description' => $this->faker->paragraph,
 
-             'url' => $this->faker->sentence,
 
-             'is_free' => 1,
 
-             'status' => 1
 
-         ];
 
-         $courierRepo = new CourierRepository(new Courier);
 
-         $this->courier = $courierRepo->createCourier($courierData);
 
-         $orderStatusData = [
 
-             'name' => $this->faker->name,
 
-             'color' => $this->faker->word
 
-         ];
 
-         $orderStatusRepo = new OrderStatusRepository(new OrderStatus);
 
-         $this->orderStatus = $orderStatusRepo->createOrderStatus($orderStatusData);
 
-         $session = $this->app->make('session');
 
-         $events = $this->app->make('events');
 
-         $this->cart = new Cart($session, $events);
 
-     }
 
-     public function tearDown()
 
-     {
 
-         $this->artisan('migrate:reset');
 
-         parent::tearDown();
 
-     }
 
- }
 
 
  |