/** * Escenario: Login correcto de Propietario * Dado que soy un usuario del tipo Propietario y estoy en la página de 'Login' * Cuando relleno el formulario con los datos <E-mail> y <Contraseña> * Y hago click en el botón 'Login' * Entonces debo obtener el panel de control de un usuario del tipo Propietario * * @return void * @group userAcceptance * @test */ public function try_login_with_existing_user2() { $userModel = new UserModel(); $owner = new Owner(); $owner->setEmail('*****@*****.**'); $owner->setAdmin(false); $owner->setPassword('123456'); $owner->setName('Owner'); $owner->setOwner(true); $owner->setPhone('654321987'); $owner->setSurname('Apellido'); $userModel->createUser($owner); $this->visit('/login')->type('*****@*****.**', 'email')->type('123456', 'password')->press('btn-login')->seePageIs('/manage/owner'); }
/** * Escenario: Insertar un nuevo alojamiento campo imagen principal no válido * Dado que soy un usuario del tipo Propietario y me he logueado correctamente * Cuando relleno el formulario para insertar un nuevo alojamiento * Y el campo imagen principal no corresponde con una imagen en formato correcto * Si hago click en el botón 'Anunciar' * Entonces debe aparecer un mensaje de "El archivo debe ser una imagen (jpeg, png, bmp, gif, or jpg)" * * @return void * @group accommAcceptance2 * @test */ public function inserting_new_accommodation_main_invalid() { $userModel = new UserModel(); $owner = new Owner(); $owner->setEmail('*****@*****.**'); $owner->setAdmin(false); $owner->setPassword('123456'); $owner->setName('Owner'); $owner->setOwner(true); $owner->setPhone('654321987'); $owner->setSurname('Apellido'); $userModel->createUser($owner); $this->visit('/login')->type('*****@*****.**', 'email')->type('123456', 'password')->press('btn-login')->seePageIs('/manage/owner')->see("Alojamientos"); $this->visit("/manage/owner#newAccom")->see("Nuevo Alojamiento")->type("Alojamiento", "new-accom-title")->type("Alicante", "new-accom-city")->select("Alicante", "new-accom-province")->type("150", "new-accom-price")->type("Esto es la descripción del anuncio", "new-accom-desc")->attach(base_path() . "/resources/assets/img/img_test/falloFormato.txt", "new-accom-main-img")->press("Anunciar")->see("Nuevo Alojamiento"); }
/** * Escenario: Buscar los alojamientos de una ciudad que sí tiene resultados desde página de búsqueda * Dado que soy un usuario del sistema y pretendo buscar los alojamientos de una determinada ciudad desde la página de búsqueda * Si escribo dicha ciudad en el buscador y sí se encuentran resultados * El sistema deberá redireccionar a la dirección 'search/accommodations/City/page/1' * Y mostrar los alojamientos disponibles * * @return void * @group searchAcceptance * @test */ public function try_search() { $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; $a1->setBaths(2); $a1->setBeds(3); $a1->setCapacity(5); $a1->setCity('Madrid'); $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('Madrid'); $a1->setTitle('Casa rural'); $am->createAccom($a1, $um->getID($owner->getEmail())); $this->visit('/')->see('Destacados')->type('Elche', 'city')->press('BUSCAR')->seePageIs('search/accommodations/Elche/page/1')->see('No hay resultados para la búsqueda introducida!')->type('Madrid', 'city')->press('Buscar')->seePageIs('/search/accommodations/Madrid/page/1')->see('Madrid'); }
/** * Recuperamos los alojamientos que tiene un owner de la base de datos * * @return void * @group getAccommByOwner */ public function testGetAccommByOwnerID() { $am = new AccommodationModel(); $a1 = new Accommodation(); $a2 = new Accommodation(); $p1 = new Photo(); $p2 = new Photo(); $p3 = new Photo(); $p4 = new Photo(); $owner = new Owner(); $um = new UserModel(); $arrayPhoto = []; $arrayPhoto2 = []; $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); $p3->setUrl('url/photo3'); $p3->setMain(1); $p4->setUrl('url/photo4'); $p4->setMain(0); $arrayPhoto[] = $p1; $arrayPhoto[] = $p2; $arrayPhoto2[] = $p3; $arrayPhoto2[] = $p4; $a1->setBaths(2); $a1->setBeds(3); $a1->setCapacity(5); $a1->setCity('Elche'); $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(number_format((double) 50, 2, '.', '')); $a1->setProvince('Alicante'); $a1->setTitle('Casa rural'); $a1->setInitialDesc($a1->getDesc()); $a2->setBaths(1); $a2->setBeds(2); $a2->setCapacity(3); $a2->setCity('Murcia'); $a2->setDesc('Alojamiento de calidad media.'); $a2->setInside('Descripción del interior del alojamiento.'); $a2->setOutside('Descripción del exterior del alojamiento.'); $a2->setPhotos($arrayPhoto2); $a2->setPrice(number_format((double) 20, 2, '.', '')); $a2->setProvince('Murcia'); $a2->setTitle('Casa en la ciudad'); $a2->setInitialDesc($a2->getDesc()); $prueba1 = $am->createAccom($a1, $um->getID($owner->getEmail())); $prueba2 = $am->createAccom($a2, $um->getID($owner->getEmail())); $a1->setID($prueba1['id']); $a2->setID($prueba2['id']); $resultado = []; $resultado[] = $a1; $resultado[] = $a2; $this->assertEquals($resultado, $am->accommodationByOwner($um->getID($owner->getEmail()))); }
/** * Recuperamos los alojamientos de una determinada ciudad de la BD * * @return void * @group getAccomByCity */ public function testgetAllAccommByCity() { $this->notSeeInDatabase('accommodations', ['title' => 'Casa rural']); $am = new AccommodationModel(); $a1 = new Accommodation(); $a2 = new Accommodation(); $p1 = new Photo(); $p3 = new Photo(); $p2 = new Photo(); $p4 = new Photo(); $owner = new Owner(); $owner2 = new Owner(); $um = new UserModel(); $sm = new \App\Models\SystemModel(); $arrayPhoto = []; $arrayPhoto2 = []; $arrayAcomm = []; $owner->setName("Norman"); $owner->setEmail("*****@*****.**"); $owner->setSurname("Coloma"); $owner->setPhone("654987321"); $owner->setPassword("prueba"); $owner2->setName("Norman"); $owner2->setEmail("*****@*****.**"); $owner2->setSurname("Coloma"); $owner2->setPhone("654987321"); $owner2->setPassword("prueba"); $um->createUser($owner); $um->createUser($owner2); $p1->setUrl('url/photo1'); $p1->setMain(1); $p2->setUrl('url/photo2'); $p2->setMain(0); $p3->setUrl('url/photo3'); $p3->setMain(1); $p4->setUrl('url/photo4'); $p4->setMain(0); $arrayPhoto[] = $p1; $arrayPhoto[] = $p2; $arrayPhoto2[] = $p3; $arrayPhoto2[] = $p4; $a1->setBaths(2); $a1->setBeds(3); $a1->setCapacity(5); $a1->setCity('Elche'); $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(number_format((double) 50, 2, '.', '')); $a1->setProvince('Alicante'); $a1->setTitle('Casa rural'); $a1->setInitialDesc($a1->getDesc()); $a2->setBaths(4); $a2->setBeds(5); $a2->setCapacity(20); $a2->setCity('Elche'); $a2->setDesc('Alojamiento de caca.'); $a2->setInside('Descripción del interior del alojamiento2.'); $a2->setOutside('Descripción del exterior del alojamiento2.'); $a2->setPhotos($arrayPhoto2); $a2->setPrice(number_format((double) 150, 2, '.', '')); $a2->setProvince('Alicante'); $a2->setTitle('Casa rural2'); $a2->setInitialDesc($a2->getDesc()); $accom = $am->createAccom($a1, $um->getID($owner->getEmail())); $accom2 = $am->createAccom($a2, $um->getID($owner2->getEmail())); $a1->setID($accom['id']); $a2->setID($accom2['id']); $arrayAcomm[] = $a1; $arrayAcomm[] = $a2; $this->SeeInDatabase('accommodations', ['title' => 'Casa rural']); $this->SeeInDatabase('photos', ['url' => 'url/photo1']); $this->SeeInDatabase('photos', ['url' => 'url/photo2']); $this->SeeInDatabase('accommodations', ['title' => 'Casa rural2']); $this->SeeInDatabase('photos', ['url' => 'url/photo3']); $this->SeeInDatabase('photos', ['url' => 'url/photo4']); //Testeamos el método allAccomByCity $this->assertEquals($arrayAcomm, $sm->allAcomByCity("Elche")); }
/** * A basic functional test example. * * @return void * @group modelo */ public function testCreate() { $userModel = new UserModel(); $admin = new Admin(); $traveler = new Traveler(); $owner = new Owner(); $admin->setName('Admin'); $admin->setEmail('*****@*****.**'); $admin->setPassword("123456"); $owner->setEmail('*****@*****.**'); $owner->setAdmin(false); $owner->setPassword('123456'); $owner->setName('Owner'); $owner->setOwner(true); $owner->setPhone('654321987'); $owner->setSurname('Apellido'); $traveler->setEmail('*****@*****.**'); $traveler->setAdmin(false); $traveler->setPassword('123456'); $traveler->setName('Traveler'); $traveler->setOwner(false); $traveler->setPhone('654321987'); $traveler->setSurname('Apellido2'); //$ok= $userModel->createUser($admin); $this->assertNotEquals(null, $userModel->createUser($admin)); $this->assertEquals(null, $userModel->createUser($admin)); $this->assertNotEquals(null, $userModel->createUser($traveler)); $this->assertEquals(null, $userModel->createUser($traveler)); $this->assertNotEquals(null, $userModel->createUser($owner)); $this->assertEquals(null, $userModel->createUser($owner)); }