| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 | 
							- <?php
 
- namespace Tests\Unit\Provinces;
 
- use App\Shop\Countries\Country;
 
- use App\Shop\Provinces\Exceptions\ProvinceNotFoundException;
 
- use App\Shop\Provinces\Province;
 
- use App\Shop\Provinces\Repositories\ProvinceRepository;
 
- use App\Shop\Cities\City;
 
- use Tests\TestCase;
 
- class ProvincesUnitTest extends TestCase
 
- {
 
-     /** @test */
 
-     public function it_should_show_the_country_of_the_province()
 
-     {
 
-         $country = factory(Country::class)->create();
 
-         $province = factory(Province::class)->create([
 
-             'country_id' => $country->id
 
-         ]);
 
-         $repo = new ProvinceRepository($province);
 
-         $found = $repo->findCountry();
 
-         $this->assertInstanceOf(Country::class, $found);
 
-         $this->assertEquals($country->name, $found->name);
 
-     }
 
-     /** @test */
 
-     public function it_error_updating_the_province_without_the_country()
 
-     {
 
-         $this->expectException(ProvinceNotFoundException::class);
 
-         $province = factory(Province::class)->create();
 
-         $data = [
 
-             'name' => $this->faker->name,
 
-             'country_id' => null
 
-         ];
 
-         $repo = new ProvinceRepository($province);
 
-         $repo->updateProvince($data);
 
-     }
 
-     /** @test */
 
-     public function it_can_list_cities()
 
-     {
 
-         $province = factory(Province::class)->create();
 
-         $city = factory(City::class)->create([
 
-             'province_id' => $province->id
 
-         ]);
 
-         $repo = new ProvinceRepository(new Province());
 
-         $collection = $repo->listCities($province->id);
 
-         $collection->each(function ($item) use ($city) {
 
-             $this->assertEquals($item->name, $city->name);
 
-         });
 
-     }
 
-     /** @test */
 
-     public function it_can_update_the_province()
 
-     {
 
-         $province = factory(Province::class)->create();
 
-         $data = [
 
-             'name' => $this->faker->name
 
-         ];
 
-         $repo = new ProvinceRepository($province);
 
-         $repo->updateProvince($data);
 
-         $this->assertEquals($data['name'], $province->name);
 
-     }
 
-     /** @test */
 
-     public function it_will_error_when_the_province_is_not_found()
 
-     {
 
-         $this->expectException(ProvinceNotFoundException::class);
 
-         $this->expectExceptionMessage('Province not found.');
 
-         $provinceRepo = new ProvinceRepository(new Province);
 
-         $provinceRepo->findProvinceById(999);
 
-     }
 
-     /** @test */
 
-     public function it_can_show_the_province()
 
-     {
 
-         $province = factory(Province::class)->create();
 
-         $provinceRepo = new ProvinceRepository(new Province);
 
-         $found = $provinceRepo->findProvinceById($province->id);
 
-         $this->assertEquals($province->name, $found->name);
 
-     }
 
-     /** @test */
 
-     public function it_can_list_all_the_cities_within_the_province()
 
-     {
 
-         $province = factory(Province::class)->create();
 
-         $city = new City(['name' => $this->faker->city]);
 
-         $city->province()->associate($province);
 
-         $province->cities()->save($city);
 
-         $cities = $province->cities()->get();
 
-         $this->assertCount(1, $cities);
 
-     }
 
-     /** @test */
 
-     public function it_can_list_all_the_provinces()
 
-     {
 
-         factory(Province::class, 5)->create();
 
-         $provinceRepo = new ProvinceRepository(new Province);
 
-         $provinces = $provinceRepo->listProvinces();
 
-         foreach ($provinces as $province) {
 
-             $this->assertDatabaseHas('provinces', $province->toArray());
 
-         }
 
-     }
 
- }
 
 
  |