public void ShouldOverwriteElementValueWithNull() { Guid parentId; var date = new DateTime(2010, 09, 08); using (var s = OpenSession()) using (var tx = s.BeginTransaction()) { var parent = new Parent(); parent.TypedDates[0] = date; s.Save(parent); parentId = parent.Id; tx.Commit(); } using (var s = OpenSession()) using (var tx = s.BeginTransaction()) { var parent = s.Load<Parent>(parentId); Assert.That(parent.TypedDates.Count, Is.EqualTo(1), "Should have one child on first reload"); Assert.That(parent.TypedDates[0], Is.Not.Null, "Should have value in map for 0 on first reload"); Assert.That(parent.TypedDates[0].Value, Is.EqualTo(date), "Should have same date as saved in map for 0 on first reload"); parent.TypedDates[0] = null; tx.Commit(); } using (var s = OpenSession()) using (var tx = s.BeginTransaction()) { var parent = s.Load<Parent>(parentId); Assert.That(parent.TypedDates.Count, Is.EqualTo(1), "Should have one child on reload after nulling"); Assert.That(parent.TypedDates[0], Is.Null, "Should have null value for child on reload after nulling"); } }
public void ShouldOverwriteNullElementWithValue() { Guid parentId; var date = new DateTime(2010, 09, 08); using (var s = OpenSession()) using (var tx = s.BeginTransaction()) { var parent = new Parent(); parent.TypedDates[0] = null; s.Save(parent); parentId = parent.Id; tx.Commit(); } using (var s = OpenSession()) using (var tx = s.BeginTransaction()) { var parent = s.Load<Parent>(parentId); Assert.That(parent.TypedDates.Count, Is.EqualTo(1), "Should have 1 child after first reload"); Assert.That(parent.TypedDates[0], Is.Null, "Should have null value after first reload"); parent.TypedDates[0] = date; tx.Commit(); } using (var s = OpenSession()) using (var tx = s.BeginTransaction()) { var parent = s.Load<Parent>(parentId); Assert.That(parent.TypedDates.Count, Is.EqualTo(1), "Should have 1 child on reload after setting value"); Assert.That(parent.TypedDates[0], Is.Not.Null, "Should have child with value on reload after setting value"); Assert.That(parent.TypedDates[0].Value, Is.EqualTo(date)); } }
public void AddRemoveUntypedElements() { Guid parentId; var date = new DateTime(2010, 09, 08); int toBeRemoved = 0; int toBeUpdatedToNull = 1; int toRemainNull = 2; int toBeUpdatedFromNull = 3; int toBeAddedNull = 4; int toBeAddedNotNull = 5; using (var s = OpenSession()) using (var tx = s.BeginTransaction()) { var parent = new Parent(); parent.UntypedDates[toBeRemoved] = null; parent.UntypedDates[toBeUpdatedToNull] = date; parent.UntypedDates[toRemainNull] = null; parent.UntypedDates[toBeUpdatedFromNull] = null; s.Save(parent); parentId = parent.Id; tx.Commit(); } using (var s = OpenSession()) using (var tx = s.BeginTransaction()) { var parent = s.Load<Parent>(parentId); Assert.That(parent.UntypedDates.Count, Is.EqualTo(4)); Assert.That(parent.UntypedDates[toBeRemoved], Is.Null); Assert.That(parent.UntypedDates[toBeUpdatedToNull], Is.EqualTo(date)); Assert.That(parent.UntypedDates[toRemainNull], Is.Null); Assert.That(parent.UntypedDates[toBeUpdatedFromNull], Is.Null); parent.UntypedDates.Remove(toBeRemoved); parent.UntypedDates[toBeUpdatedToNull] = null; parent.UntypedDates[toBeUpdatedFromNull] = date; parent.UntypedDates[toBeAddedNull] = null; parent.UntypedDates[toBeAddedNotNull] = date; tx.Commit(); } using (var s = OpenSession()) using (var tx = s.BeginTransaction()) { var parent = s.Load<Parent>(parentId); Assert.That(parent.UntypedDates.Count, Is.EqualTo(5)); Assert.That(parent.UntypedDates[toBeUpdatedToNull], Is.Null); Assert.That(parent.UntypedDates[toRemainNull], Is.Null); Assert.That(parent.UntypedDates[toBeUpdatedFromNull], Is.EqualTo(date)); Assert.That(parent.UntypedDates[toBeAddedNull], Is.Null); Assert.That(parent.UntypedDates[toBeAddedNotNull], Is.EqualTo(date)); } }
public void ShouldAddAndRemoveNullElements() { Guid parentId; var date = new DateTime(2010, 09, 08); using (var s = OpenSession()) using (var tx = s.BeginTransaction()) { var parent = new Parent(); parent.TypedDates[0] = null; parent.TypedDates[1] = date; s.Save(parent); parentId = parent.Id; tx.Commit(); } using (var s = OpenSession()) using (var tx = s.BeginTransaction()) { var parent = s.Load<Parent>(parentId); Assert.That(parent.TypedDates.Count, Is.EqualTo(2)); Assert.That(parent.TypedDates[0], Is.Null); Assert.That(parent.TypedDates[1], Is.EqualTo(date)); parent.TypedDates.Remove(0); parent.TypedDates[2] = null; tx.Commit(); } using (var s = OpenSession()) using (var tx = s.BeginTransaction()) { var parent = s.Load<Parent>(parentId); Assert.That(parent.TypedDates.Count, Is.EqualTo(2)); Assert.That(parent.TypedDates[1], Is.EqualTo(date)); Assert.That(parent.TypedDates[2], Is.Null); } }