Esempio n. 1
0
 public function allAcomByCity($city)
 {
     $am = new AccommodationModel();
     $accomm = null;
     $accommodations = [];
     try {
         $accomm = DB::table('accommodations')->where('province', $city)->orWhere('city', $city)->paginate(5);
         if (count($accomm) == 0) {
             return null;
         }
         foreach ($accomm as $ac) {
             $a = new Accommodation();
             $a->setID($ac->id);
             $a->setBaths($ac->bathrooms);
             $a->setBeds($ac->beds);
             $a->setCapacity($ac->capacity);
             $a->setCity($ac->city);
             $a->setDesc($ac->desc);
             $a->setInside($ac->inside);
             $a->setOutside($ac->outside);
             $a->setPhotos($am->allPhotos($ac->id));
             $a->setPrice($ac->price_per_person);
             $a->setProvince($ac->province);
             $a->setTitle($ac->title);
             $a->setInitialDesc($ac->desc);
             $accommodations[] = $a;
         }
     } catch (QueryException $ex) {
         return null;
     }
     return $accommodations;
 }
 /**
  * Insertamos un alojamiento en la base de datos
  *
  * @return void
  * @group insertFailAccomm
  */
 public function testInsertFailAccomm()
 {
     //$this->notSeeInDatabase('accommodations', ['title' => 'Casa rural']);
     $am = new AccommodationModel();
     $a1 = new Accommodation();
     $p1 = new Photo();
     $p2 = new Photo();
     $owner = new Owner();
     $um = new UserModel();
     $arrayPhoto = [];
     $owner->setName("Norman");
     $owner->setEmail("*****@*****.**");
     $owner->setSurname("Coloma");
     $owner->setPhone("654987321");
     $owner->setPassword("prueba");
     $um->createUser($owner);
     $p1->setUrl('url/photo1');
     $p1->setMain(1);
     $p2->setUrl('url/photo2');
     $p2->setMain(0);
     $arrayPhoto[] = $p1;
     $arrayPhoto[] = $p2;
     //No seteamos la ciudad para hacer que salte la excepción
     $a1->setBaths(2);
     $a1->setBeds(3);
     $a1->setCapacity(5);
     $a1->setDesc('Alojamiento de lujo.');
     $a1->setInside('Descripción del interior del alojamiento.');
     $a1->setOutside('Descripción del exterior del alojamiento.');
     $a1->setPhotos($arrayPhoto);
     $a1->setPrice(50);
     $a1->setProvince('Alicante');
     $a1->setTitle('Casa rural');
     //Testeamos el método createAccom lanza la excepcion QueryException
     $accom = null;
     try {
         $accom = $am->createAccom($a1, $um->getID($owner->getEmail()));
     } catch (Exception $e) {
         $this->assertEquals("Ha fallado la inserción", $e->getMessage());
     }
     //Comprobamos que no se ha insertado en la BD
     $this->notSeeInDatabase('accommodations', ['title' => 'Casa rural']);
     $this->notSeeInDatabase('photos', ['url' => 'url/photo1']);
     $this->notSeeInDatabase('photos', ['url' => 'url/photo2']);
     //Comprobamos que no se ha insertado ninguna foto
     $this->assertEquals(0, count($am->allPhotos($accom['id'])));
 }