public void ComoTexto_FechaYConsecutivo_CodigoDeReferenciaCorrecto() { elResultadoEsperado = "20160303022058888888888887"; losDatos = new DatosParaLaInversionConTratamiento(); losDatos.FechaActual = new DateTime(2016, 3, 3); losDatos.ConsecutivoParaElCodigoDeReferencia = "888888888888"; elResultadoObtenido = new CodigoDeReferenciaParaInversion(losDatos).ComoTexto(); Assert.AreEqual(elResultadoEsperado, elResultadoObtenido); }
public void ComoNumero_DatosCorrectos_RendimientoPorDescuentoCorrecto() { elResultadoEsperado = 21621.6216; losDatos = new DatosParaLaInversionConTratamiento(); losDatos.ValorFacial = 320000; losDatos.ValorTransadoNeto = 300000; losDatos.TasaDeImpuesto = 0.08; losDatos.FechaActual = new DateTime(2016, 3, 3); losDatos.FechaDeVencimiento = new DateTime(2016, 10, 10); elResultadoObtenido = new RendimientoPorDescuentoConTratamiento(losDatos).ComoNumero(); Assert.AreEqual(elResultadoEsperado, elResultadoObtenido, 0.0001); }
public void GenereUnaNuevaInversion_CodigoDeReferencia() { elResultadoEsperado = "20160303022058888888888887"; losDatos = new DatosParaLaInversionConTratamiento(); losDatos.ValorFacial = 320000; losDatos.ValorTransadoNeto = 300000; losDatos.TasaDeImpuesto = 0.08; losDatos.FechaActual = new DateTime(2016, 3, 3); losDatos.FechaDeVencimiento = new DateTime(2016, 10, 10); losDatos.ConsecutivoParaElCodigoDeReferencia = "888888888888"; laInversion = new Inversion(losDatos); elResultadoObtenido = laInversion.CodigoDeReferencia; Assert.AreEqual(elResultadoEsperado, elResultadoObtenido); }
public void GenereUnaNuevaInversion_TasaBruta() { elResultadoEsperado = 12.0008; losDatos = new DatosParaLaInversionConTratamiento(); losDatos.ValorFacial = 320000; losDatos.ValorTransadoNeto = 300000; losDatos.TasaDeImpuesto = 0.08; losDatos.FechaActual = new DateTime(2016, 3, 3); losDatos.FechaDeVencimiento = new DateTime(2016, 10, 10); losDatos.tieneTratamientoFiscal = true; losDatos.ConsecutivoParaElCodigoDeReferencia = "888888888888"; laInversion = new Inversion(losDatos); elResultadoObtenido = Math.Round(laInversion.TasaBruta, 4); Assert.AreEqual(elResultadoEsperado, elResultadoObtenido); }
public void GenereUnaNuevaInversion_ConTratamientoFiscal_RendimientoPorDescuento() { elResultadoEsperado = 21621.6216; losDatosCon = new DatosParaLaInversionConTratamiento(); losDatosCon.ValorFacial = 320000; losDatosCon.ValorTransadoNeto = 300000; losDatosCon.TasaDeImpuesto = 0.08; losDatosCon.FechaActual = new DateTime(2016, 3, 3); losDatosCon.FechaDeVencimiento = new DateTime(2016, 10, 10); losDatosCon.tieneTratamientoFiscal = true; losDatosCon.ConsecutivoParaElCodigoDeReferencia = "888888888888"; laInversion = new Inversion(losDatosCon); elResultadoObtenido = laInversion.RendimientoPorDescuento; Assert.AreEqual(elResultadoEsperado, elResultadoObtenido, 0.0001); }
private static DatosParaLaInversion DetermineElTipo(TipoDeInversion elTipoDeInversion) { DatosParaLaInversion losDatos; switch (elTipoDeInversion) { case TipoDeInversion.ConTratamientoFiscal: losDatos = new DatosParaLaInversionConTratamiento(); break; case TipoDeInversion.SinTratamientoFiscal: losDatos = new DatosParaLaInversionSinTratamiento(); break; case TipoDeInversion.Tratamiento360: losDatos = new DatosParaLaInversion360(); break; default: throw new ArgumentException("Error: tipo de inversion invalido."); } return(losDatos); }
public static Inversion GenereLaInversion(double elValorFacial, double elValorTransadoNeto, int elPlazoEnDias, TipoDeInversion elTipoDeInversion) { //VALIDACION DE LOS DATOS if (elValorFacial <= 100000) { throw new ArgumentException("Error: El valor facial es invalido."); } if (elValorTransadoNeto <= 100000) { throw new ArgumentException("Error: El valor transado neto es invalido."); } if (elPlazoEnDias < 1) { throw new ArgumentException("Error: El plazo en dias es invalido."); } //DEPENDENCIAS CON RECURSOS EXTERNOS DateTime laFechaActual = DateTime.Now; double laTasaDeImpuesto = new RepositorioDeParametros().ObtengaLaTasaDeimpuestoVigente(laFechaActual); int elConsecutivo = new RepositorioDeParametros().ObtengaElConsecutivoParaElCodigoDeReferencia(laFechaActual); //ASIGNACION DE LAS PROPIEDADES DatosParaLaInversion losDatos; switch (elTipoDeInversion) { case TipoDeInversion.ConTratamientoFiscal: losDatos = new DatosParaLaInversionConTratamiento(); break; case TipoDeInversion.SinTratamientoFiscal: losDatos = new DatosParaLaInversionSinTratamiento(); break; case TipoDeInversion.Tratamiento360: losDatos = new DatosParaLaInversion360(); break; default: throw new ArgumentException("Error: tipo de inversion invalido."); } //ASIGNACION DE TODOS LOS DATOS PARA LA INVERSION losDatos.ValorFacial = elValorFacial; losDatos.ValorTransadoNeto = elValorTransadoNeto; losDatos.TasaDeImpuesto = laTasaDeImpuesto; losDatos.FechaActual = laFechaActual; DateTime laFechaDeVencimiento = laFechaActual.AddDays(elPlazoEnDias); losDatos.FechaDeVencimiento = laFechaDeVencimiento; string elConsecutivoComoTexto = elConsecutivo.ToString(); losDatos.ConsecutivoParaElCodigoDeReferencia = elConsecutivoComoTexto; return(new Inversion(losDatos)); }