Пример #1
0
        public void ComprarPeliculaSinStockTest()
        {
            ComprasCN   comprasCN = new ComprasCN();
            PeliculasAD peliculasAD = new PeliculasAD();
            string      nifSocio = "00000000T";
            string      codBarrasPelicula = "0686983675479";
            Pelicula    pelicula, peliculaOriginal;

            // Necesitamos ser administrador para comprar, 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.UnidadesVenta         = 0;
                pelicula.UnidadesVentaAlquiler = 1;
                pelicula.UnidadesAlquiladas    = 1;
                pelicula.UnidadesAlquiler      = 0;
                peliculasAD.ActualizarPelicula(pelicula, peliculaOriginal);

                // Intentamos alquilar
                EstadoPedido estadoPedido = comprasCN.ComprarPelicula(nifSocio, codBarrasPelicula);

                Assert.AreEqual(EstadoPedido.StockInsuficiente, estadoPedido);
            }
        }
Пример #2
0
        public void ComprarPeliculaSinSaldoTest()
        {
            ComprasCN  comprasCN = new ComprasCN();
            UsuariosAD usuariosAD = new UsuariosAD();
            string     nifSocio = "00000000T";
            string     codBarrasPelicula = "0686983675479";
            Socio      socio, socioOriginal;

            // Necesitamos ser administrador para comprar, 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 comprar
                EstadoPedido estadoPedido = comprasCN.ComprarPelicula(nifSocio, codBarrasPelicula);

                Assert.AreEqual(EstadoPedido.SaldoInsuficiente, estadoPedido);
            }
        }
Пример #3
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);
            }
        }
Пример #4
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);
            }
        }
Пример #5
0
        public void ComprarPeliculaTest()
        {
            ComprasCN   comprasCN   = new ComprasCN();
            PeliculasCN peliculasCN = new PeliculasCN();
            Pelicula    pelicula;
            string      nifSocio          = "00000000T";
            string      codBarrasPelicula = "0686983675479";
            int         unidadesVenta;

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

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

            using (TransactionScope tx = new TransactionScope())
            {
                comprasCN.ComprarPelicula(nifSocio, codBarrasPelicula);

                pelicula = peliculasCN.ObtenerPeliculaPorCodBarras(codBarrasPelicula, false, false);
                Assert.AreEqual(unidadesVenta - 1, pelicula.UnidadesVenta);
            }
        }