public void RecuperarInstantaneaEnObjetoDatos()
        {
            // arrange
            Log log = new Log();
            //FabricaHistorial fabrica = new FabricaHistorial();
            IFabrica     fabrica = new FabricaHistorial(log);
            IObjetoDatos od      = fabrica.Crear(HelperTipo.ObtenerTipo());

            // act
            bool     valorBoolean  = od.ObtenerBoolean(0);
            byte     valorByte     = od.ObtenerByte(1);
            char     valorChar     = od.ObtenerChar(2);
            DateTime valorDateTime = od.ObtenerDateTime(3);
            var      valorDecimal  = od.ObtenerDecimal(4);
            var      valorDouble   = od.ObtenerDouble(5);
            var      valorFloat    = od.ObtenerFloat(6);
            var      valorInteger  = od.ObtenerInteger(7);
            var      valorLong     = od.ObtenerLong(8);
            var      valorSByte    = od.ObtenerSByte(9);
            var      valorShort    = od.ObtenerShort(10);
            var      valorString   = od.ObtenerString(11);
            var      valorUInteger = od.ObtenerUInteger(12);
            var      valorULong    = od.ObtenerULong(13);
            var      valorUShort   = od.ObtenerUShort(14);

            // establecer valores
            var instantanea1 = log.CrearInstantanea();

            od.EstablecerBoolean("atributoBoolean", true);

            var instantanea2 = log.CrearInstantanea();

            od.EstablecerByte("atributoByte", byte.MaxValue);

            var instantanea3 = log.CrearInstantanea();

            od.EstablecerChar("atributoChar", char.MaxValue);

            var instantanea4 = log.CrearInstantanea();

            od.EstablecerDateTime("atributoDateTime", DateTime.MaxValue);

            // recuperar
            log.Recuperar(instantanea3);

            // assert
            Assert.AreEqual(od.ObtenerBoolean(0), true, $"Se esperaba {valorBoolean}");
            Assert.AreEqual(od.ObtenerByte(1), byte.MaxValue, $"Se esperaba {valorByte}");
            Assert.AreEqual(od.ObtenerChar(2), valorChar, $"Se esperaba {valorChar}");
            Assert.AreEqual(od.ObtenerDateTime(3), valorDateTime, $"Se esperaba {valorDateTime}");

            // recuperar
            log.Recuperar(instantanea1);

            // assert
            Assert.AreEqual(od.ObtenerBoolean(0), valorBoolean, $"Se esperaba {valorBoolean}");
            Assert.AreEqual(od.ObtenerByte(1), valorByte, $"Se esperaba {valorByte}");
            Assert.AreEqual(od.ObtenerChar(2), valorChar, $"Se esperaba {valorChar}");
            Assert.AreEqual(od.ObtenerDateTime(3), valorDateTime, $"Se esperaba {valorDateTime}");
        }
        public void DeshacerCambiosEnObjetoDatos()
        {
            // arrange
            Log controlador = new Log();
            //FabricaHistorial fabrica = new FabricaHistorial();
            IFabrica     fabrica = new FabricaHistorial(controlador);
            IObjetoDatos od      = fabrica.Crear(HelperTipo.ObtenerTipo());

            // act
            bool     valorBoolean  = od.ObtenerBoolean(0);
            byte     valorByte     = od.ObtenerByte(1);
            char     valorChar     = od.ObtenerChar(2);
            DateTime valorDateTime = od.ObtenerDateTime(3);
            var      valorDecimal  = od.ObtenerDecimal(4);
            var      valorDouble   = od.ObtenerDouble(5);
            var      valorFloat    = od.ObtenerFloat(6);
            var      valorInteger  = od.ObtenerInteger(7);
            var      valorLong     = od.ObtenerLong(8);
            var      valorSByte    = od.ObtenerSByte(9);
            var      valorShort    = od.ObtenerShort(10);
            var      valorString   = od.ObtenerString(11);
            var      valorUInteger = od.ObtenerUInteger(12);
            var      valorULong    = od.ObtenerULong(13);
            var      valorUShort   = od.ObtenerUShort(14);

            // establecer valores
            //EstablecerValoresPorIndice(od);
            Helper.Construir(od);

            // deshacer cambios
            controlador.Deshacer();

            //// establecer valores
            ////EstablecerValoresPorTipoPorIndice(od);
            //Helper.Construir(od);

            //// deshacer cambios
            //controlador.Deshacer();

            // assert
            Assert.AreEqual(od.ObtenerBoolean(0), valorBoolean, $"Se esperaba {valorBoolean}");
            Assert.AreEqual(od.ObtenerByte(1), valorByte, $"Se esperaba {valorByte}");
            Assert.AreEqual(od.ObtenerChar(2), valorChar, $"Se esperaba {valorChar}");
            Assert.AreEqual(od.ObtenerDateTime(3), valorDateTime, $"Se esperaba {valorDateTime}");
            Assert.AreEqual(od.ObtenerDecimal(4), valorDecimal, $"Se esperaba {valorDecimal}");
            Assert.AreEqual(od.ObtenerDouble(5), valorDouble, $"Se esperaba {valorDouble}");
            Assert.AreEqual(od.ObtenerFloat(6), valorFloat, $"Se esperaba {valorFloat}");
            Assert.AreEqual(od.ObtenerInteger(7), valorInteger, $"Se esperaba {valorInteger}");
            Assert.AreEqual(od.ObtenerLong(8), valorInteger, $"Se esperaba {valorInteger}");
            Assert.AreEqual(od.ObtenerSByte(9), valorSByte, $"Se esperaba {valorSByte}");
            Assert.AreEqual(od.ObtenerShort(10), valorShort, $"Se esperaba {valorShort}");
            Assert.AreEqual(od.ObtenerString(11), valorString, $"Se esperaba {valorString ?? ""}");
            Assert.AreEqual(od.ObtenerUInteger(12), valorUInteger, $"Se esperaba {valorUInteger}");
            Assert.AreEqual(od.ObtenerULong(13), valorULong, $"Se esperaba {valorULong}");
            Assert.AreEqual(od.ObtenerUShort(14), valorUShort, $"Se esperaba {valorUShort}");
        }
示例#3
0
        public void EvaluarObjetoDatosPathObtenerPorTipo()
        {
            IObjetoDatos od = Helper.Crear(_tipox);

            Helper.Construir(od, 2, 0);

            string ruta = "ReferenciaObjetoDatos";

            bool     valorBoolean  = true;
            byte     valorByte     = 125;
            char     valorChar     = 'D';
            DateTime valorDateTime = DateTime.Now;
            decimal  valorDecimal  = new decimal(15896658.100245);
            double   valorDouble   = 448995.55698;
            float    valorFloat    = (float)56625.55;
            int      valorInteger  = -102458;
            long     valorLong     = -89665522321;
            sbyte    valorSByte    = 89;
            short    valorShort    = 5444;
            string   valorString   = "cadena de texto";
            uint     valorUInteger = 89955212;
            ulong    valorULong    = 788554421056;
            ushort   valorUShort   = 9035;

            od.EstablecerBoolean($"{ruta}/atributoBoolean", valorBoolean);
            od.EstablecerByte($"{ruta}/atributoByte", valorByte);
            od.EstablecerChar($"{ruta}/atributoChar", valorChar);
            od.EstablecerDateTime($"{ruta}/atributoDateTime", valorDateTime);
            od.EstablecerDecimal($"{ruta}/atributoDecimal", valorDecimal);
            od.EstablecerDouble($"{ruta}/atributoDouble", valorDouble);
            od.EstablecerFloat($"{ruta}/atributoFloat", valorFloat);
            od.EstablecerInteger($"{ruta}/atributoInteger", valorInteger);
            od.EstablecerLong($"{ruta}/atributoLong", valorLong);
            od.EstablecerSByte($"{ruta}/atributoSByte", valorSByte);
            od.EstablecerShort($"{ruta}/atributoShort", valorShort);
            od.EstablecerString($"{ruta}/atributoString", valorString);
            od.EstablecerUInteger($"{ruta}/atributoUInteger", valorUInteger);
            od.EstablecerULong($"{ruta}/atributoULong", valorULong);
            od.EstablecerUShort($"{ruta}/atributoUShort", valorUShort);

            Assert.AreEqual(valorBoolean, od.ObtenerBoolean($"{ruta}/atributoBoolean"));
            Assert.AreEqual(valorByte, od.ObtenerByte($"{ruta}/atributoByte"));
            Assert.AreEqual(valorChar, od.ObtenerChar($"{ruta}/atributoChar"));
            Assert.AreEqual(valorDateTime, od.ObtenerDateTime($"{ruta}/atributoDateTime"));
            Assert.AreEqual(valorDecimal, od.ObtenerDecimal($"{ruta}/atributoDecimal"));
            Assert.AreEqual(valorDouble, od.ObtenerDouble($"{ruta}/atributoDouble"));
            Assert.AreEqual(valorFloat, od.ObtenerFloat($"{ruta}/atributoFloat"));
            Assert.AreEqual(valorInteger, od.ObtenerInteger($"{ruta}/atributoInteger"));
            Assert.AreEqual(valorLong, od.ObtenerLong($"{ruta}/atributoLong"));
            Assert.AreEqual(valorSByte, od.ObtenerSByte($"{ruta}/atributoSByte"));
            Assert.AreEqual(valorShort, od.ObtenerShort($"{ruta}/atributoShort"));
            Assert.AreEqual(valorString, od.ObtenerString($"{ruta}/atributoString"));
            Assert.AreEqual(valorUInteger, od.ObtenerUInteger($"{ruta}/atributoUInteger"));
            Assert.AreEqual(valorULong, od.ObtenerULong($"{ruta}/atributoULong"));
            Assert.AreEqual(valorUShort, od.ObtenerUShort($"{ruta}/atributoUShort"));
        }
示例#4
0
        public void EvaluarEstablecerPorTipoPorNombre()
        {
            IObjetoDatos od  = Fabrica.Instancia.Crear(_tipo);
            Random       rnd = new Random();

            bool     valorBoolean  = true;
            byte     valorByte     = byte.MaxValue;
            char     valorChar     = char.MaxValue;
            DateTime valorDateTime = DateTime.MaxValue;
            decimal  valorDecimal  = decimal.MaxValue;
            double   valorDouble   = double.MaxValue;
            float    valorFloat    = float.MaxValue;
            int      valorInteger  = int.MaxValue;
            long     valorLong     = long.MaxValue;
            sbyte    valorSByte    = sbyte.MaxValue;
            short    valorShort    = short.MaxValue;
            string   valorString   = "abcdefghijklmnoprstuvwxyz";
            uint     valorUInteger = uint.MaxValue;
            ulong    valorULong    = ulong.MaxValue;
            ushort   valorUShort   = ushort.MaxValue;

            od.EstablecerBoolean("atributoBoolean", valorBoolean);
            od.EstablecerByte("atributoByte", valorByte);
            od.EstablecerChar("atributoChar", valorChar);
            od.EstablecerDateTime("atributoDateTime", valorDateTime);
            od.EstablecerDecimal("atributoDecimal", valorDecimal);
            od.EstablecerDouble("atributoDouble", valorDouble);
            od.EstablecerFloat("atributoFloat", valorFloat);
            od.EstablecerInteger("atributoInteger", valorInteger);
            od.EstablecerLong("atributoLong", valorLong);
            od.EstablecerSByte("atributoSByte", valorSByte);
            od.EstablecerShort("atributoShort", valorShort);
            od.EstablecerString("atributoString", valorString);
            od.EstablecerUInteger("atributoUInteger", valorUInteger);
            od.EstablecerULong("atributoULong", valorULong);
            od.EstablecerUShort("atributoUShort", valorUShort);

            Assert.AreEqual(od.ObtenerBoolean("atributoBoolean"), valorBoolean);
            Assert.AreEqual(od.ObtenerByte("atributoByte"), valorByte);
            Assert.AreEqual(od.ObtenerChar("atributoChar"), valorChar);
            Assert.AreEqual(od.ObtenerDateTime("atributoDateTime"), valorDateTime);
            Assert.AreEqual(od.ObtenerDecimal("atributoDecimal"), valorDecimal);
            Assert.AreEqual(od.ObtenerDouble("atributoDouble"), valorDouble);
            Assert.AreEqual(od.ObtenerFloat("atributoFloat"), valorFloat);
            Assert.AreEqual(od.ObtenerInteger("atributoInteger"), valorInteger);
            Assert.AreEqual(od.ObtenerLong("atributoLong"), valorLong);
            Assert.AreEqual(od.ObtenerSByte("atributoSByte"), valorSByte);
            Assert.AreEqual(od.ObtenerShort("atributoShort"), valorShort);
            Assert.AreEqual(od.ObtenerString("atributoString"), valorString);
            Assert.AreEqual(od.ObtenerUInteger("atributoUInteger"), valorUInteger);
            Assert.AreEqual(od.ObtenerULong("atributoULong"), valorULong);
            Assert.AreEqual(od.ObtenerUShort("atributoUShort"), valorUShort);
        }
示例#5
0
        public void EvaluarEstablecerPorTipoPorIndice()
        {
            IObjetoDatos od  = Fabrica.Instancia.Crear(_tipo);
            Random       rnd = new Random();

            bool     valorBoolean  = true;
            byte     valorByte     = byte.MaxValue;
            char     valorChar     = char.MaxValue;
            DateTime valorDateTime = DateTime.MaxValue;
            decimal  valorDecimal  = decimal.MaxValue;
            double   valorDouble   = double.MaxValue;
            float    valorFloat    = float.MaxValue;
            int      valorInteger  = int.MaxValue;
            long     valorLong     = long.MaxValue;
            sbyte    valorSByte    = sbyte.MaxValue;
            short    valorShort    = short.MaxValue;
            string   valorString   = "abcdefghijklmnoprstuvwxyz";
            uint     valorUInteger = uint.MaxValue;
            ulong    valorULong    = ulong.MaxValue;
            ushort   valorUShort   = ushort.MaxValue;

            od.EstablecerBoolean(0, valorBoolean);
            od.EstablecerByte(1, valorByte);
            od.EstablecerChar(2, valorChar);
            od.EstablecerDateTime(3, valorDateTime);
            od.EstablecerDecimal(4, valorDecimal);
            od.EstablecerDouble(5, valorDouble);
            od.EstablecerFloat(6, valorFloat);
            od.EstablecerInteger(7, valorInteger);
            od.EstablecerLong(8, valorLong);
            od.EstablecerSByte(9, valorSByte);
            od.EstablecerShort(10, valorShort);
            od.EstablecerString(11, valorString);
            od.EstablecerUInteger(12, valorUInteger);
            od.EstablecerULong(13, valorULong);
            od.EstablecerUShort(14, valorUShort);

            Assert.AreEqual(od.ObtenerBoolean(0), valorBoolean);
            Assert.AreEqual(od.ObtenerByte(1), valorByte);
            Assert.AreEqual(od.ObtenerChar(2), valorChar);
            Assert.AreEqual(od.ObtenerDateTime(3), valorDateTime);
            Assert.AreEqual(od.ObtenerDecimal(4), valorDecimal);
            Assert.AreEqual(od.ObtenerDouble(5), valorDouble);
            Assert.AreEqual(od.ObtenerFloat(6), valorFloat);
            Assert.AreEqual(od.ObtenerInteger(7), valorInteger);
            Assert.AreEqual(od.ObtenerLong(8), valorLong);
            Assert.AreEqual(od.ObtenerSByte(9), valorSByte);
            Assert.AreEqual(od.ObtenerShort(10), valorShort);
            Assert.AreEqual(od.ObtenerString(11), valorString);
            Assert.AreEqual(od.ObtenerUInteger(12), valorUInteger);
            Assert.AreEqual(od.ObtenerULong(13), valorULong);
            Assert.AreEqual(od.ObtenerUShort(14), valorUShort);
        }
示例#6
0
        protected virtual void Escribir(IObjetoDatos od, IPropiedad propiedad)
        {
            switch (propiedad.Tipo.Nombre)
            {
            case "Boolean":
                EscribirBoolean(propiedad, od.ObtenerBoolean(propiedad));
                break;

            case "Byte":
                EscribirByte(propiedad, od.ObtenerByte(propiedad));
                break;

            case "Char":
                EscribirChar(propiedad, od.ObtenerChar(propiedad));
                break;

            case "DateTime":
                EscribirDateTime(propiedad, od.ObtenerDateTime(propiedad));
                break;

            case "Decimal":
                EscribirDecimal(propiedad, od.ObtenerDecimal(propiedad));
                break;

            case "Double":
                EscribirDouble(propiedad, od.ObtenerDouble(propiedad));
                break;

            case "Single":
                EscribirFloat(propiedad, od.ObtenerFloat(propiedad));
                break;

            case "Int32":
                EscribirInteger(propiedad, od.ObtenerInteger(propiedad));
                break;

            case "Int64":
                EscribirLong(propiedad, od.ObtenerLong(propiedad));
                break;

            case "SByte":
                EscribirSByte(propiedad, od.ObtenerSByte(propiedad));
                break;

            case "Int16":
                EscribirShort(propiedad, od.ObtenerShort(propiedad));
                break;

            case "String":
                EscribirString(propiedad, od.ObtenerString(propiedad));
                break;

            case "UInt32":
                EscribirUInteger(propiedad, od.ObtenerUInteger(propiedad));
                break;

            case "UInt64":
                EscribirULong(propiedad, od.ObtenerULong(propiedad));
                break;

            case "UInt16":
                EscribirUShort(propiedad, od.ObtenerUShort(propiedad));
                break;
            }
        }
        public void RecuperarInstantaneaEnObjetoDatosX()
        {
            // arrange
            Log          log     = new Log();
            IFabrica     fabrica = new FabricaHistorial(log);
            IObjetoDatos od      = fabrica.Crear(HelperTipo.ObtenerTipo2());

            // act
            var instantanea1 = log.CrearInstantanea();

            od.CrearObjetoDatos("ReferenciaObjetoDatos");

            var instantanea2 = log.CrearInstantanea();

            od.CrearObjetoDatos("ReferenciaObjetoDatosItem");

            var instantanea3 = log.CrearInstantanea();

            od.CrearObjetoDatos("ReferenciaObjetoDatosItem");

            var instantanea4 = log.CrearInstantanea();

            od.CrearObjetoDatos("ReferenciaObjetoDatosItem[0]/ReferenciaObjetoDatos");

            var instantanea5 = log.CrearInstantanea();

            od.CrearObjetoDatos("ReferenciaObjetoDatosItem[1]/ReferenciaObjetoDatos");

            var valorBoolean = od.Obtener("atributoBoolean");
            var valorByte    = od.Obtener("atributoByte");

            var instantanea6 = log.CrearInstantanea();

            od.EstablecerBoolean("ReferenciaObjetoDatosItem[1]/ReferenciaObjetoDatos/atributoBoolean", true);
            od.EstablecerByte("ReferenciaObjetoDatosItem[1]/ReferenciaObjetoDatos/atributoByte", byte.MaxValue);

            Assert.AreEqual(od.ObtenerBoolean("ReferenciaObjetoDatosItem[1]/ReferenciaObjetoDatos/atributoBoolean"), true);
            Assert.AreEqual(od.ObtenerByte("ReferenciaObjetoDatosItem[1]/ReferenciaObjetoDatos/atributoByte"), byte.MaxValue);

            // recuperar
            log.Recuperar(instantanea6);

            Assert.AreEqual(od.ObtenerBoolean("ReferenciaObjetoDatosItem[1]/ReferenciaObjetoDatos/atributoBoolean"), valorBoolean);
            Assert.AreEqual(od.ObtenerByte("ReferenciaObjetoDatosItem[1]/ReferenciaObjetoDatos/atributoByte"), valorByte);


            // recuperar
            log.Recuperar(instantanea5);

            Assert.IsNull(od.Obtener("ReferenciaObjetoDatosItem[1]/ReferenciaObjetoDatos"));

            // recuperar
            log.Recuperar(instantanea4);

            Assert.IsNull(od.Obtener("ReferenciaObjetoDatosItem[0]/ReferenciaObjetoDatos"));

            // recuperar
            log.Recuperar(instantanea3);

            Assert.AreEqual(od.ObtenerColeccion("ReferenciaObjetoDatosItem").Longitud, 1);

            // recuperar
            log.Recuperar(instantanea2);

            Assert.AreEqual(od.ObtenerColeccion("ReferenciaObjetoDatosItem").Longitud, 0);

            // recuperar
            log.Recuperar(instantanea1);

            Assert.IsNull(od.Obtener("ReferenciaObjetoDatos"));
        }