コード例 #1
0
 private void ActualizarPropiedad(IObjetoDatos od, IPropiedad propiedad)
 {
     if (propiedad.Tipo.EsTipoDeDato || propiedad.Asociacion == Asociacion.Agregacion || od.ObtenerObjetoDatos(propiedad) == null)
     {
         ObjetoDatos.Establecer(propiedad, od.Obtener(propiedad));
     }
     else if (propiedad.Asociacion == Asociacion.Composicion)
     {
         CrearObservador(od.ObtenerObjetoDatos(propiedad), ObjetoDatos.CrearObjetoDatos(propiedad));
     }
 }
コード例 #2
0
        private static IObjetoDatos ResolverReferencia(IObjetoDatos od, IPropiedad propiedad, string parametro)
        {
            IObjetoDatos referencia = null;

            string[] pasos = parametro.Split(new char[] { '=' });

            if (pasos.GetLength(0) > 1)
            {
                var filtro = from item in od.ObtenerColeccion(propiedad)
                             where referencia.Obtener(pasos[0]).ToString().Equals(pasos[1])
                             select item;

                referencia = filtro.FirstOrDefault();
            }

            return(referencia);
        }
コード例 #3
0
        public void EvaluarEstablecerPorNombre()
        {
            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.Establecer("atributoBoolean", valorBoolean);
            od.Establecer("atributoByte", valorByte);
            od.Establecer("atributoChar", valorChar);
            od.Establecer("atributoDateTime", valorDateTime);
            od.Establecer("atributoDecimal", valorDecimal);
            od.Establecer("atributoDouble", valorDouble);
            od.Establecer("atributoFloat", valorFloat);
            od.Establecer("atributoInteger", valorInteger);
            od.Establecer("atributoLong", valorLong);
            od.Establecer("atributoSByte", valorSByte);
            od.Establecer("atributoShort", valorShort);
            od.Establecer("atributoString", valorString);
            od.Establecer("atributoUInteger", valorUInteger);
            od.Establecer("atributoULong", valorULong);
            od.Establecer("atributoUShort", valorUShort);

            Assert.AreEqual(od.Obtener("atributoBoolean"), valorBoolean);
            Assert.AreEqual(od.Obtener("atributoByte"), valorByte);
            Assert.AreEqual(od.Obtener("atributoChar"), valorChar);
            Assert.AreEqual(od.Obtener("atributoDateTime"), valorDateTime);
            Assert.AreEqual(od.Obtener("atributoDecimal"), valorDecimal);
            Assert.AreEqual(od.Obtener("atributoDouble"), valorDouble);
            Assert.AreEqual(od.Obtener("atributoFloat"), valorFloat);
            Assert.AreEqual(od.Obtener("atributoInteger"), valorInteger);
            Assert.AreEqual(od.Obtener("atributoLong"), valorLong);
            Assert.AreEqual(od.Obtener("atributoSByte"), valorSByte);
            Assert.AreEqual(od.Obtener("atributoShort"), valorShort);
            Assert.AreEqual(od.Obtener("atributoString"), valorString);
            Assert.AreEqual(od.Obtener("atributoUInteger"), valorUInteger);
            Assert.AreEqual(od.Obtener("atributoULong"), valorULong);
            Assert.AreEqual(od.Obtener("atributoUShort"), valorUShort);
        }
コード例 #4
0
        public void EvaluarObjetoDatosPathObtener()
        {
            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.Establecer($"{ruta}/atributoBoolean", valorBoolean);
            od.Establecer($"{ruta}/atributoByte", valorByte);
            od.Establecer($"{ruta}/atributoChar", valorChar);
            od.Establecer($"{ruta}/atributoDateTime", valorDateTime);
            od.Establecer($"{ruta}/atributoDecimal", valorDecimal);
            od.Establecer($"{ruta}/atributoDouble", valorDouble);
            od.Establecer($"{ruta}/atributoFloat", valorFloat);
            od.Establecer($"{ruta}/atributoInteger", valorInteger);
            od.Establecer($"{ruta}/atributoLong", valorLong);
            od.Establecer($"{ruta}/atributoSByte", valorSByte);
            od.Establecer($"{ruta}/atributoShort", valorShort);
            od.Establecer($"{ruta}/atributoString", valorString);
            od.Establecer($"{ruta}/atributoUInteger", valorUInteger);
            od.Establecer($"{ruta}/atributoULong", valorULong);
            od.Establecer($"{ruta}/atributoUShort", valorUShort);

            Assert.AreEqual(valorBoolean, Convert.ToBoolean(od.Obtener($"{ruta}/atributoBoolean")), "Se esperaba el valor true.");
            Assert.AreEqual(valorByte, od.Obtener($"{ruta}/atributoByte"));
            Assert.AreEqual(valorChar, od.Obtener($"{ruta}/atributoChar"));
            Assert.AreEqual(valorDateTime, od.Obtener($"{ruta}/atributoDateTime"));
            Assert.AreEqual(valorDecimal, od.Obtener($"{ruta}/atributoDecimal"));
            Assert.AreEqual(valorDouble, od.Obtener($"{ruta}/atributoDouble"));
            Assert.AreEqual(valorFloat, od.Obtener($"{ruta}/atributoFloat"));
            Assert.AreEqual(valorInteger, od.Obtener($"{ruta}/atributoInteger"));
            Assert.AreEqual(valorLong, od.Obtener($"{ruta}/atributoLong"));
            Assert.AreEqual(valorSByte, od.Obtener($"{ruta}/atributoSByte"));
            Assert.AreEqual(valorShort, od.Obtener($"{ruta}/atributoShort"));
            Assert.AreEqual(valorString, od.Obtener($"{ruta}/atributoString"));
            Assert.AreEqual(valorUInteger, od.Obtener($"{ruta}/atributoUInteger"));
            Assert.AreEqual(valorULong, od.Obtener($"{ruta}/atributoULong"));
            Assert.AreEqual(valorUShort, od.Obtener($"{ruta}/atributoUShort"));
        }
コード例 #5
0
        public void EvaluarEstablecerPorIndice()
        {
            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.Establecer(0, valorBoolean);
            od.Establecer(1, valorByte);
            od.Establecer(2, valorChar);
            od.Establecer(3, valorDateTime);
            od.Establecer(4, valorDecimal);
            od.Establecer(5, valorDouble);
            od.Establecer(6, valorFloat);
            od.Establecer(7, valorInteger);
            od.Establecer(8, valorLong);
            od.Establecer(9, valorSByte);
            od.Establecer(10, valorShort);
            od.Establecer(11, valorString);
            od.Establecer(12, valorUInteger);
            od.Establecer(13, valorULong);
            od.Establecer(14, valorUShort);

            Assert.AreEqual(od.Obtener(0), valorBoolean);
            Assert.AreEqual(od.Obtener(1), valorByte);
            Assert.AreEqual(od.Obtener(2), valorChar);
            Assert.AreEqual(od.Obtener(3), valorDateTime);
            Assert.AreEqual(od.Obtener(4), valorDecimal);
            Assert.AreEqual(od.Obtener(5), valorDouble);
            Assert.AreEqual(od.Obtener(6), valorFloat);
            Assert.AreEqual(od.Obtener(7), valorInteger);
            Assert.AreEqual(od.Obtener(8), valorLong);
            Assert.AreEqual(od.Obtener(9), valorSByte);
            Assert.AreEqual(od.Obtener(10), valorShort);
            Assert.AreEqual(od.Obtener(11), valorString);
            Assert.AreEqual(od.Obtener(12), valorUInteger);
            Assert.AreEqual(od.Obtener(13), valorULong);
            Assert.AreEqual(od.Obtener(14), valorUShort);
        }
        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"));
        }