public static Inversion GenereLaInversion(double elValorFacial, double elValorTransadoNeto, int elPlazoEnDias, TipoDeInversion elTipoDeInversion) { DatosParaLaInversion losDatos = ObtengaLosDatos(elValorFacial, elValorTransadoNeto, elPlazoEnDias, elTipoDeInversion); return(ObtengaLaInversion(losDatos)); }
public void ComoTexto_FechaYConsecutivo_CodigoDeReferenciaCorrecto() { elResultadoEsperado = "20160303022058888888888887"; losDatos = new DatosParaLaInversion(); losDatos.FechaActual = new DateTime(2016, 3, 3); losDatos.ConsecutivoParaElCodigoDeReferencia = "888888888888"; elResultadoObtenido = new CodigoDeReferenciaParaInversion(losDatos).ComoTexto(); Assert.AreEqual(elResultadoEsperado, elResultadoObtenido); }
private DatosParaLaInversion ObtengaLosDatos(DatosParaLaFecha losDatosParaLaFecha) { DatosParaLaInversion losDatos = losDatosParaLaFecha.TipoDeDatos; losDatos.ValorFacial = losDatosParaLaFecha.ValorFacial; losDatos.ValorTransadoNeto = losDatosParaLaFecha.ValorTransadoNeto; losDatos.TasaDeImpuesto = losDatosParaLaFecha.TasaDeImpuesto; losDatos.FechaActual = losDatosParaLaFecha.FechaActual; losDatos.FechaDeVencimiento = losDatosParaLaFecha.FechaDeVencimiento; losDatos.ConsecutivoParaElCodigoDeReferencia = losDatosParaLaFecha.ConsecutivoComoTexto; return(losDatos); }
public void ComoNumero_DatosCorrectos_ValorTransadoBrutoCorrecta() { elResultadoEsperado = 298378.3783; losDatos = new DatosParaLaInversion(); 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 ValorTransadoBrutoConTratamiento(losDatos).ComoNumero(); Assert.AreEqual(elResultadoEsperado, elResultadoObtenido, 0.0001); }
public static Inversion GenereUnaNuevaInversion(DatosParaLaInversion losDatos) { Inversion laNuevaInversion = new Inversion(); laNuevaInversion.CodigoDeReferencia = GenereElCodigoDeReferencia(losDatos); laNuevaInversion.TasaNeta = losDatos.TasaNeta; laNuevaInversion.TasaBruta = losDatos.TasaBruta; laNuevaInversion.ValorTransadoBruto = losDatos.ValorTransadoBruto; laNuevaInversion.ImpuestoPagado = losDatos.ImpuestoPagado; laNuevaInversion.RendimientoPorDescuento = losDatos.RendimientoPorDescuento; laNuevaInversion.FechaDeValor = losDatos.FechaActual; laNuevaInversion.FechaDeVencimiento = losDatos.FechaDeVencimiento; return(laNuevaInversion); }
private static DatosParaLaInversion ObtengaLosDatos(double elValorFacial, double elValorTransadoNeto, int elPlazoEnDias, TipoDeInversion elTipoDeInversion) { DatosParaLaInversion losDatos = DetermineElTipo(elTipoDeInversion); DateTime laFechaActual = ObtengaLaFechaActual(); losDatos.ValorFacial = elValorFacial; losDatos.ValorTransadoNeto = elValorTransadoNeto; losDatos.TasaDeImpuesto = ObtengaLaTasaDeImpuesto(laFechaActual); losDatos.FechaActual = laFechaActual; losDatos.FechaDeVencimiento = ObtengaLaFechaDeVencimiento(elPlazoEnDias, laFechaActual); losDatos.ConsecutivoParaElCodigoDeReferencia = ObtengaElConsecutivoComoTexto(laFechaActual); return(losDatos); }
public void GenereUnaNuevaInversion_SinTratamientoFiscal_ImpuestoPagado() { elResultadoEsperado = 0; losDatos = new DatosParaLaInversion(); 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 = false; losDatos.ConsecutivoParaElCodigoDeReferencia = "888888888888"; laInversion = Calculos.GenereUnaNuevaInversion(losDatos); elResultadoObtenido = laInversion.ImpuestoPagado; Assert.AreEqual(elResultadoEsperado, elResultadoObtenido); }
public void GenereUnaNuevaInversion_ConTratamientoFiscal_ValorTransadoBruto() { elResultadoEsperado = 298378.3784; losDatos = new DatosParaLaInversion(); 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 = Calculos.GenereUnaNuevaInversion(losDatos); elResultadoObtenido = Math.Round(laInversion.ValorTransadoBruto, 4); Assert.AreEqual(elResultadoEsperado, elResultadoObtenido); }
private DatosParaLaInversion ObtengaLosDatos(DatosParaLaInversionFinal losDatosFinales) { DatosParaLaInversion losDatos = DetermineElTipo(losDatosFinales); DateTime laFechaActual = ObtengaLaFechaActual(); //TODO: ARREGLAR ESTOS DETALLES DatosParaLaFecha losDatosParaLaFecha = new DatosParaLaFecha(); losDatosParaLaFecha.PlazoEnDias = losDatosFinales.PlazoEnDias; losDatosParaLaFecha.FechaActual = laFechaActual; losDatos.ValorFacial = losDatosFinales.ValorFacial; losDatos.ValorTransadoNeto = losDatosFinales.ValorTransadoNeto; losDatos.TasaDeImpuesto = ObtengaLaTasaDeImpuesto(laFechaActual); losDatos.FechaActual = laFechaActual; losDatos.FechaDeVencimiento = ObtengaLaFechaDeVencimiento(losDatosParaLaFecha); losDatos.ConsecutivoParaElCodigoDeReferencia = ObtengaElConsecutivoComoTexto(laFechaActual); return(losDatos); }
private DatosParaLaInversion DetermineElTipo(DatosParaLaInversionFinal losDatosFinales) { DatosParaLaInversion losDatos; switch (losDatosFinales.TipoDeInversion) { 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 InversionFinal(DatosParaLaFecha losDatosParaLaFecha) { losDatos = ObtengaLosDatos(losDatosParaLaFecha); }
public InversionFinal(DatosParaLaInversionFinal losDatosFinales) { losDatos = ObtengaLosDatos(losDatosFinales); }
private static string GenereElCodigoDeReferencia(DatosParaLaInversion losDatos) { return(new CodigoDeReferenciaParaInversion(losDatos).ComoTexto()); }
private static Inversion ObtengaLaInversion(DatosParaLaInversion losDatos) { return(new Inversion(losDatos)); }
public InversionFinal(double elValorFacial, double elValorTransadoNeto, int elPlazoEnDias, TipoDeInversion elTipoDeInversion) { losDatos = ObtengaLosDatos(elValorFacial, elValorTransadoNeto, elPlazoEnDias, elTipoDeInversion); }