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']))); }