public void TestNullableDataContainer() { NullableDataContainer ndc = new NullableDataContainer(); ndc.Init(); var pm = PmFactory.NewPersistenceManager(); pm.MakePersistent(ndc); pm.Save(); pm.UnloadCache(); ndc = new NDOQuery <NullableDataContainer>(pm, null, false).ExecuteSingle(true); AssertNullableDataContainer(ndc); }
void AssertNullableDataContainer(NullableDataContainer dc) { Assert.AreEqual(true, dc.BoolVar, "BoolVar falsch"); Assert.AreEqual(127, dc.ByteVar, "ByteVar falsch"); Assert.AreEqual(DateTime.Now.Date, dc.DateTimeVar.Value.Date, "DateTimeVar falsch"); Assert.AreEqual(new Guid("12341234-1234-1234-1234-123412341234"), dc.GuidVar, "GuidVar falsch"); Assert.AreEqual(1231.12m, dc.DecVar, "DecVar falsch"); Assert.AreEqual(int.MaxValue, dc.Int32Var, "Int32Var falsch"); Assert.AreEqual((uint)int.MaxValue, dc.Uint32Var, "UInt32Var falsch"); #if SQLITE Assert.That(CheckDouble(1E28, dc.DoubleVar.Value), "DoubleVar falsch"); Assert.That(CheckFloat(1E14F, dc.FloatVar.Value), "FloatVar falsch"); #else Assert.AreEqual(1E28, dc.DoubleVar.Value, "DoubleVar falsch"); Assert.AreEqual(1E14F, dc.FloatVar.Value, "FloatVar falsch"); #endif Assert.AreEqual(0x1ffffffff, dc.Int64Var, "Int64Var falsch"); Assert.AreEqual(short.MaxValue, dc.Int16Var, "Int16Var falsch"); Assert.AreEqual((ushort)short.MaxValue, dc.Uint16Var, "UInt16Var falsch"); Assert.AreEqual(0x1ffffffff, dc.Uint64Var, "UInt64Var falsch"); Assert.AreEqual(EnumType.drei, dc.EnumVar, "EnumType falsch"); #if !ACCESS // Access initializes bool vars always with False Assert.That(!dc.BoolEmptyVar.HasValue, "BoolEmptyVar falsch"); #endif Assert.That(!dc.ByteEmptyVar.HasValue, "ByteVar falsch"); Assert.That(!dc.DateTimeEmptyVar.HasValue, "DateTimeVar falsch"); Assert.That(!dc.GuidEmptyVar.HasValue, "GuidVar falsch"); Assert.That(!dc.DecEmptyVar.HasValue, "DecVar falsch"); Assert.That(!dc.Int32EmptyVar.HasValue, "Int32Var falsch"); Assert.That(!dc.Uint32EmptyVar.HasValue, "UInt32Var falsch"); Assert.That(!dc.DoubleEmptyVar.HasValue, "DoubleVar falsch"); Assert.That(!dc.FloatEmptyVar.HasValue, "FloatVar falsch"); Assert.That(!dc.Int64EmptyVar.HasValue, "Int64Var falsch"); Assert.That(!dc.Int16EmptyVar.HasValue, "Int16Var falsch"); Assert.That(!dc.Uint16EmptyVar.HasValue, "UInt16Var falsch"); Assert.That(!dc.Uint64EmptyVar.HasValue, "UInt64Var falsch"); Assert.That(!dc.EnumEmptyVar.HasValue, "EnumType falsch"); }