public void PagarBoletoComun() { Colectivo colectivo1 = new Colectivo("142", "Semtur", 1); Colectivo colectivo2 = new Colectivo("143", "Mixta", 1); Colectivo colectivo3 = new Colectivo("144", "Mixta", 1); Tarjeta tarjeta1 = new Tarjeta(false); Tarjeta tarjeta2 = new Tarjeta(true); //Tarjeta 1 //Viaje no concretado por falta de fondos Assert.AreEqual(false, tarjeta1.PagarBoleto(colectivo1, DateTime.Now.AddHours(-8))); tarjeta1.RecargarSaldo(200); //Boleto comun Assert.AreEqual(true,tarjeta1.PagarBoleto(colectivo1, DateTime.Now.AddHours(-2))); Assert.AreEqual(228.25, tarjeta1.Saldo); //Boleto comun Assert.AreEqual(true,tarjeta1.PagarBoleto(colectivo2, DateTime.Now.AddMinutes(-30))); Assert.AreEqual(222.5, tarjeta1.Saldo); //Transbordo comun (diferente colectivo en menos de una hora) Assert.AreEqual(true,tarjeta1.PagarBoleto(colectivo3, DateTime.Now.AddMinutes(-10))); Assert.AreEqual(220.6, tarjeta1.Saldo); //Boleto comun (diferente colectivo en menos de una hora pero con transbordo ya usado) Assert.AreEqual(true,tarjeta1.PagarBoleto(colectivo1, DateTime.Now.AddMinutes(-1))); Assert.AreEqual(214.85, tarjeta1.Saldo); //Boleto comun (mismo colectivo en menos de una hora) Assert.AreEqual(true,tarjeta1.PagarBoleto(colectivo1, DateTime.Now)); Assert.AreEqual(209.1, tarjeta1.Saldo); Assert.AreEqual(5, tarjeta1.ViajesTotal()); }
public void PagarMedioBoleto() { Colectivo colectivo1 = new Colectivo("142", "Semtur", 1); Colectivo colectivo2 = new Colectivo("143", "Mixta", 1); Colectivo colectivo3 = new Colectivo("144", "Mixta", 1); Tarjeta tarjeta1 = new Tarjeta(false); Tarjeta tarjeta2 = new Tarjeta(true); var temprano = new DateTime(2015, 11, 24, 3, 0, 0); //Tarjeta 2 //Viaje no concretado por falta de fondos Assert.AreEqual(false, tarjeta2.PagarBoleto(colectivo1, DateTime.Now.AddHours(-8))); // tarjeta2.RecargarSaldo(200); //Medio Boleto Assert.AreEqual(true, tarjeta2.PagarBoleto(colectivo1, temprano)); Assert.AreEqual(228.25, tarjeta2.Saldo); //Medio Boleto Assert.AreEqual(true, tarjeta2.PagarBoleto(colectivo1, DateTime.Now.AddHours(-2))); Assert.AreEqual(226.35, tarjeta2.Saldo); //Transbordo medio boleto Assert.AreEqual(true, tarjeta2.PagarBoleto(colectivo2, DateTime.Now.AddHours(-2))); Assert.AreEqual(225.39, tarjeta2.Saldo); //Medio Boleto (diferente colectivo en menos de una hora pero con transbordo ya usado) Assert.AreEqual(true, tarjeta2.PagarBoleto(colectivo3, DateTime.Now.AddHours(-1).AddMinutes(-30))); Assert.AreEqual((decimal)223.49, (decimal)tarjeta2.Saldo); //Medio Boleto (mismo colectivo en menos de una hora) Assert.AreEqual(true, tarjeta2.PagarBoleto(colectivo3, DateTime.Now.AddHours(-1))); Assert.AreEqual((decimal)221.59, (decimal)tarjeta2.Saldo); Assert.AreEqual(5, tarjeta2.ViajesTotal()); }
public void MedioBoleto() { Colectivo colectivo1 = new Colectivo("142", "Semtur", 1); Colectivo colectivo2 = new Colectivo("143", "Mixta", 1); Colectivo colectivo3 = new Colectivo("144", "Mixta", 1); Tarjeta tarjeta1 = new Tarjeta(false); Tarjeta tarjeta2 = new Tarjeta(true); Assert.AreEqual(false, tarjeta1.MedioBoleto); Assert.AreEqual(true, tarjeta2.MedioBoleto); }
public bool PagarBoleto(Colectivo Colectivo, DateTime FechaHoraViaje) { if (viajes != null && viajes.Count() > 0) { var ultimoViaje = viajes.OrderBy(v => v.Fecha.Date).Last(); TimeSpan diferenciaViajes = FechaHoraViaje - ultimoViaje.Fecha; if (ultimoViaje.ColectivoLinea != Colectivo.Linea && diferenciaViajes.TotalMinutes <= 60 && Transbordo) { if (MedioBoleto && 6 <= FechaHoraViaje.Hour && FechaHoraViaje.Hour <= 24) { /*Transbordo Medio Boleto*/ if (Saldo >= 0.96) { Saldo -= 0.96; Transbordo = false; Viaje viaje = new Viaje(FechaHoraViaje, Colectivo.Linea, Colectivo.Empresa, 0.96); viajes.Add(viaje); return true; } else { return false; } } else { /*Transbordo Comun*/ if (Saldo >= 1.90) { Saldo -= 1.90; Transbordo = false; Viaje viaje = new Viaje(FechaHoraViaje, Colectivo.Linea, Colectivo.Empresa, 1.90); viajes.Add(viaje); return true; } else { return false; } } } } if (MedioBoleto && 6 <= FechaHoraViaje.Hour && FechaHoraViaje.Hour <= 24) { /*Medio Boleto*/ if (Saldo >= 1.90) { Saldo -= 1.90; Transbordo = true; Viaje viaje = new Viaje(FechaHoraViaje, Colectivo.Linea, Colectivo.Empresa, 1.90); viajes.Add(viaje); return true; } else { return false; } } else { /*Boleto Comun*/ if (Saldo >= 5.75) { Saldo -= 5.75; Transbordo = true; Viaje viaje = new Viaje(FechaHoraViaje, Colectivo.Linea, Colectivo.Empresa, 5.75); viajes.Add(viaje); return true; } else { return false; } } }