Example #1
0
        public void DevolverPeliculaTest()
        {
            AlquileresCN alquileresCN = new AlquileresCN();
            PeliculasCN  peliculasCN  = new PeliculasCN();
            Pelicula     pelicula;
            string       nifSocio          = "00000000T";
            string       codBarrasPelicula = "0686983675479";
            int          unidadesAlquiladas;
            Alquiler     alquiler;
            AlquileresAD alquileresAD = new AlquileresAD();
            Historico    historico;

            // Necesitamos ser administrador para devolver, impersonamos
            ConnectionHelper.ImpersonateAdmin();

            // Recuperamos datos para comprobar
            pelicula           = peliculasCN.ObtenerPeliculaPorCodBarras(codBarrasPelicula, false, false);
            unidadesAlquiladas = pelicula.UnidadesAlquiladas;

            using (TransactionScope tx = new TransactionScope())
            {
                alquileresCN.AlquilarPelicula(nifSocio, codBarrasPelicula);
                alquileresCN.RecogerPelicula(nifSocio, codBarrasPelicula);
                alquileresCN.DevolverPelicula(nifSocio, codBarrasPelicula, out historico);

                pelicula = peliculasCN.ObtenerPeliculaPorCodBarras(codBarrasPelicula, false, false);
                Assert.AreEqual(unidadesAlquiladas, pelicula.UnidadesAlquiladas);

                Assert.AreEqual((Decimal)0.15, historico.Precio);

                alquiler = alquileresAD.ObtenerAlquilerSinDevolverPorSocioPelicula(nifSocio, codBarrasPelicula);
                Assert.IsNull(alquiler);
            }
        }
Example #2
0
        public void AlquilarPeliculaSinModalidadTest()
        {
            AlquileresCN alquileresCN = new AlquileresCN();
            PeliculasAD  peliculasAD = new PeliculasAD();
            string       nifSocio = "00000000T";
            string       codBarrasPelicula = "0686983675479";
            Pelicula     pelicula, peliculaOriginal;

            // Necesitamos ser administrador para alquilar, impersonamos
            ConnectionHelper.ImpersonateAdmin();

            using (TransactionScope tx = new TransactionScope())
            {
                // Quitamos el stock a la pelicula
                pelicula                       = peliculasAD.ObtenerPeliculaPorCodBarras(codBarrasPelicula, false, false);
                peliculaOriginal               = (Pelicula)OperacionesEntidad.CreateDataCopy(pelicula, false);
                pelicula.UnidadesAlquiler      = 0;
                pelicula.UnidadesVentaAlquiler = 0;
                peliculasAD.ActualizarPelicula(pelicula, peliculaOriginal);

                // Intentamos alquilar
                EstadoPedido estadoPedido = alquileresCN.AlquilarPelicula(nifSocio, codBarrasPelicula);

                Assert.AreEqual(EstadoPedido.ModalidadNoDisponible, estadoPedido);
            }
        }
Example #3
0
        public void AlquilarPeliculaTest()
        {
            AlquileresCN alquileresCN = new AlquileresCN();
            PeliculasCN  peliculasCN  = new PeliculasCN();
            Pelicula     pelicula;
            AlquileresAD alquileresAD      = new AlquileresAD();
            string       nifSocio          = "00000000T";
            string       codBarrasPelicula = "0686983675479";
            int          unidadesAlquiladas;
            Alquiler     alquiler;

            // Necesitamos ser administrador para alquilar, impersonamos
            ConnectionHelper.ImpersonateAdmin();

            // Recuperamos datos para comprobar
            pelicula           = peliculasCN.ObtenerPeliculaPorCodBarras(codBarrasPelicula, false, false);
            unidadesAlquiladas = pelicula.UnidadesAlquiladas;

            using (TransactionScope tx = new TransactionScope())
            {
                alquileresCN.AlquilarPelicula(nifSocio, codBarrasPelicula);

                pelicula = peliculasCN.ObtenerPeliculaPorCodBarras(codBarrasPelicula, false, false);
                Assert.AreEqual(unidadesAlquiladas + 1, pelicula.UnidadesAlquiladas);

                alquiler = alquileresAD.ObtenerAlquilerSinRecogerPorSocioPelicula(nifSocio, codBarrasPelicula);
                Assert.IsNotNull(alquiler);
                Assert.IsFalse(alquiler.FechaRecogida.HasValue);
            }
        }
Example #4
0
        public void AlquilarPeliculaSinSaldoTest()
        {
            AlquileresCN alquileresCN = new AlquileresCN();
            UsuariosAD   usuariosAD = new UsuariosAD();
            string       nifSocio = "00000000T";
            string       codBarrasPelicula = "0686983675479";
            Socio        socio, socioOriginal;

            // Necesitamos ser administrador para alquilar, impersonamos
            ConnectionHelper.ImpersonateAdmin();

            using (TransactionScope tx = new TransactionScope())
            {
                // Quitamos el saldo al socio
                socio         = usuariosAD.ObtenerSocioPorNIF(nifSocio);
                socioOriginal = (Socio)OperacionesEntidad.CreateDataCopy(socio, false);
                socio.Saldo   = 0;
                usuariosAD.ActualizarUsuario(socio, socioOriginal);

                // Intentamos alquilar
                EstadoPedido estadoPedido = alquileresCN.AlquilarPelicula(nifSocio, codBarrasPelicula);

                Assert.AreEqual(EstadoPedido.SaldoInsuficiente, estadoPedido);
            }
        }
Example #5
0
    public EstadoPedido AlquilarPelicula(string nifSocio, string peliculaCodBarras)
    {
        AlquileresCN alquileresCN = new AlquileresCN();

        return(alquileresCN.AlquilarPelicula(nifSocio, peliculaCodBarras));
    }