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)); } }
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); }
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); }
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")); }
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")); }