public void GetReporteConElementoOk() { var reporteMock = new Mock <IGenerarReporte>(MockBehavior.Strict); var logicMock = new Mock <IReserva>(MockBehavior.Strict); var logicMockHospedaje = new Mock <IHospedaje>(MockBehavior.Strict); ReservasController controller = new ReservasController(logicMock.Object, logicMockHospedaje.Object); PuntoTuristico punto = new PuntoTuristico() { Id = 0, Nombre = "Test" }; DatosReporte datos = new DatosReporte() { PuntoId = punto.Id }; logicMock.Setup(x => x.ObtenerTodos()) .Returns(new List <Reserva>() { new Reserva() { Id = 0, Hospedaje = new Hospedaje() { Id = 0, PuntoTuristico = punto }, NombreTurista = "Test" } }); reporteMock.Setup(x => x.GenerarReporte(datos)).Returns(It.IsAny <List <CantReservasPorHospedaje> >()); var result = controller.GetReporte(datos); var okResult = result as OkObjectResult; logicMock.VerifyAll(); }
public override global::System.Data.DataSet Clone() { DatosReporte cln = ((DatosReporte)(base.Clone())); cln.InitVars(); cln.SchemaSerializationMode = this.SchemaSerializationMode; return(cln); }
public void TestGenerarReporteOk() { List <CantReservasPorHospedaje> lista = new List <CantReservasPorHospedaje>(); var logicaReservaMock = new Mock <IReserva>(MockBehavior.Strict); IGenerarReporte generador = new GenerarReporteConcretoA(logicaReservaMock.Object); PuntoTuristico punto = new PuntoTuristico() { Id = 0, Nombre = "Test" }; DateTime inicio = new DateTime(2020, 10, 9); DateTime fin = new DateTime(2020, 10, 19); EstadoReserva estado = EstadoReserva.Creada; DatosReporte datos = new DatosReporte() { PuntoId = punto.Id, Inicio = inicio, Fin = fin }; Hospedaje hospedaje1 = new Hospedaje() { NombreHospedaje = "Hospedaje1", PuntoTuristico = punto }; Hospedaje hospedaje2 = new Hospedaje() { NombreHospedaje = "Hospedaje2", PuntoTuristico = punto }; Reserva reserva1 = new Reserva() { Hospedaje = hospedaje1, CheckIn = inicio, CheckOut = fin, Estado = estado }; Reserva reserva2 = new Reserva() { Hospedaje = hospedaje1, CheckIn = inicio, CheckOut = fin, Estado = estado }; Reserva reserva3 = new Reserva() { Hospedaje = hospedaje2, CheckIn = inicio, CheckOut = fin, Estado = estado }; bool condicionCantElem = false; bool condicionElemOrd = false; bool condicion = false; List <Reserva> reservas = new List <Reserva>(); reservas.Add(reserva1); reservas.Add(reserva2); reservas.Add(reserva3); logicaReservaMock.Setup(x => x.ObtenerTodos()).Returns(reservas); lista = generador.GenerarReporte(datos); condicionCantElem = (lista.Count == 2); condicionElemOrd = (lista.First().NombreHospedaje.Equals(hospedaje1.NombreHospedaje)); condicion = condicionCantElem && condicionElemOrd; Assert.IsTrue(condicion); }
public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedDataSetSchema(global::System.Xml.Schema.XmlSchemaSet xs) { DatosReporte ds = new DatosReporte(); global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); global::System.Xml.Schema.XmlSchemaAny any = new global::System.Xml.Schema.XmlSchemaAny(); any.Namespace = ds.Namespace; sequence.Items.Add(any); type.Particle = sequence; global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); if (xs.Contains(dsSchema.TargetNamespace)) { global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); try { global::System.Xml.Schema.XmlSchema schema = null; dsSchema.Write(s1); for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext();) { schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); s2.SetLength(0); schema.Write(s2); if ((s1.Length == s2.Length)) { s1.Position = 0; s2.Position = 0; for (; ((s1.Position != s1.Length) && (s1.ReadByte() == s2.ReadByte()));) { ; } if ((s1.Position == s1.Length)) { return(type); } } } } finally { if ((s1 != null)) { s1.Close(); } if ((s2 != null)) { s2.Close(); } } } xs.Add(dsSchema); return(type); }
public List <CantReservasPorHospedaje> GenerarReporte(DatosReporte datos) { List <CantReservasPorHospedaje> retorno = new List <CantReservasPorHospedaje>(); var reservas = logicaReserva.ObtenerTodos().Where(x => x.Hospedaje.PuntoTuristico.Id == datos.PuntoId).ToList(); HayReservas(reservas); foreach (Reserva reserva in reservas) { if (EstaEnFecha(reserva, datos) && EstadoValido(reserva)) { AumentarContador(retorno, reserva); } } retorno = OrdenarLista(retorno); return(retorno); }
public IActionResult GetReporte([FromBody] DatosReporte datos) { try { IGenerarReporte generar = new GenerarReporteConcretoA(logica); List <CantReservasPorHospedaje> salidaReporte = generar.GenerarReporte(datos); return(Ok(salidaReporte)); }catch (FechaVaciaException) { return(BadRequest("La fecha no se seteo correctamente")); } catch (NoHayReservasException) { return(BadRequest("No hay reservas para ese punto")); } catch (UnsupportedContentTypeException) { return(BadRequest("Formato de cuerpo incorrecto. Debe ser JSON")); } }
public void TestGenerarReporteFechaFueraDeRango() { List <CantReservasPorHospedaje> lista = new List <CantReservasPorHospedaje>(); var logicaReservaMock = new Mock <IReserva>(MockBehavior.Strict); IGenerarReporte generador = new GenerarReporteConcretoA(logicaReservaMock.Object); PuntoTuristico puntoEsta = new PuntoTuristico() { Id = 0 }; PuntoTuristico puntoNoEsta = new PuntoTuristico() { Id = 1 }; DateTime datosInicio = new DateTime(2020, 10, 9); DateTime datosFin = new DateTime(2020, 10, 19); DateTime reservaInicio = new DateTime(2020, 9, 9); DateTime reservaFin = new DateTime(2020, 9, 19); EstadoReserva estado = EstadoReserva.Creada; DatosReporte datos = new DatosReporte() { PuntoId = puntoNoEsta.Id, Inicio = datosInicio, Fin = datosFin }; Hospedaje hospedaje = new Hospedaje() { NombreHospedaje = "Hospedaje2", PuntoTuristico = puntoEsta }; Reserva reserva = new Reserva() { Hospedaje = hospedaje, CheckIn = reservaInicio, CheckOut = reservaFin, Estado = estado }; List <Reserva> reservas = new List <Reserva>() { reserva }; logicaReservaMock.Setup(x => x.ObtenerTodos()).Returns(reservas); Assert.Throws <NoHayReservasException>(() => generador.GenerarReporte(datos)); }
public void TestGenerarReporteConEstadoInvalido() { List <CantReservasPorHospedaje> lista = new List <CantReservasPorHospedaje>(); var logicaReservaMock = new Mock <IReserva>(MockBehavior.Strict); IGenerarReporte generador = new GenerarReporteConcretoA(logicaReservaMock.Object); PuntoTuristico punto = new PuntoTuristico() { Id = 0, Nombre = "Test" }; DateTime inicio = new DateTime(2020, 10, 9); DateTime fin = new DateTime(2020, 10, 19); DatosReporte datos = new DatosReporte() { PuntoId = punto.Id, Inicio = inicio, Fin = fin }; Hospedaje hospedaje1 = new Hospedaje() { NombreHospedaje = "Hospedaje1", PuntoTuristico = punto }; Reserva reserva1 = new Reserva() { Hospedaje = hospedaje1, CheckIn = inicio, CheckOut = fin, Estado = EstadoReserva.Aceptada }; Reserva reserva2 = new Reserva() { Hospedaje = hospedaje1, CheckIn = inicio, CheckOut = fin, Estado = EstadoReserva.Expirada }; List <Reserva> reservas = new List <Reserva>(); reservas.Add(reserva1); reservas.Add(reserva2); logicaReservaMock.Setup(x => x.ObtenerTodos()).Returns(reservas); lista = generador.GenerarReporte(datos); Assert.AreEqual(1, lista.Count); }
private static bool EstaEnFecha(Reserva reserva, DatosReporte datos) { return(FechaMenorOIgual(reserva.CheckIn, datos.Inicio) && FechaMenorOIgual(datos.Fin, reserva.CheckOut)); }
public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); DatosReporte ds = new DatosReporte(); global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); any1.Namespace = "http://www.w3.org/2001/XMLSchema"; any1.MinOccurs = new decimal(0); any1.MaxOccurs = decimal.MaxValue; any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; sequence.Items.Add(any1); global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; any2.MinOccurs = new decimal(1); any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; sequence.Items.Add(any2); global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); attribute1.Name = "namespace"; attribute1.FixedValue = ds.Namespace; type.Attributes.Add(attribute1); global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); attribute2.Name = "tableTypeName"; attribute2.FixedValue = "DatosDataTable"; type.Attributes.Add(attribute2); type.Particle = sequence; global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); if (xs.Contains(dsSchema.TargetNamespace)) { global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); try { global::System.Xml.Schema.XmlSchema schema = null; dsSchema.Write(s1); for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext();) { schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); s2.SetLength(0); schema.Write(s2); if ((s1.Length == s2.Length)) { s1.Position = 0; s2.Position = 0; for (; ((s1.Position != s1.Length) && (s1.ReadByte() == s2.ReadByte()));) { ; } if ((s1.Position == s1.Length)) { return(type); } } } } finally { if ((s1 != null)) { s1.Close(); } if ((s2 != null)) { s2.Close(); } } } xs.Add(dsSchema); return(type); }