public void LogChanges_Update() { var tbl = new Rowset(Schema.GetForTypedRow(typeof(Person))); tbl.Insert( new Person{ ID = "POP1", FirstName = "Oleg", LastName = "Popov", DOB = new DateTime(1953, 12, 10), YearsInSpace = 12 }); tbl.LogChanges = true; tbl.Update( tbl[0] ); Assert.AreEqual(1, tbl.ChangeCount); Assert.AreEqual(RowChangeType.Update, tbl.GetChangeAt(0).Value.ChangeType); }
public void PopulateAndUpdateNonExisting() { var tbl = new Rowset(Schema.GetForTypedRow(typeof(Person))); for(var i=0; i<1000; i++) tbl.Insert( new Person{ ID = "POP{0}".Args(i), FirstName = "Oleg", LastName = "Popov-{0}".Args(i), DOB = new DateTime(1953, 12, 10), YearsInSpace = 12 }); var update = new Person{ ID = "NONE17", FirstName = "Yaroslav", LastName = "Suzkever", DOB = new DateTime(1952, 12, 10), YearsInSpace = 14 }; var idx = tbl.Update(update);//<-------------!!!!!! Assert.IsTrue( idx==-1 ); var match = tbl.FindByKey("NONE17") as Person; Assert.IsNull( match ); }
public void Save() { var rowset = new Rowset(Schema.GetForTypedRow(typeof(MyPerzon))); rowset.LogChanges = true; for(var i=0; i<100; i++) { rowset.Insert( new MyPerzon { GDID = new GDID(1, 1, (ulong)i), Name = "Jeka Koshmar", Age = i }); } var qryBetween5060 = new Query("CRUD.LoadPerzonsInAgeSpan", typeof(MyPerzon)) { new Query.Param("fromAge", 50), new Query.Param("toAge", 60) }; var rs = store.LoadOneRowset(qryBetween5060); Assert.IsNotNull( rs ); Assert.AreEqual(0, rs.Count); store.Save(rowset); rowset.PurgeChanges(); rs = store.LoadOneRowset(qryBetween5060); Assert.IsNotNull( rs ); Assert.AreEqual(9, rs.Count); rowset[55]["Age"] = 900; //falls out of query rowset.Update(rowset[55]); rowset.Delete(rowset[59]); //physically deleted store.Save(rowset); rs = store.LoadOneRowset(qryBetween5060); Assert.IsNotNull( rs ); Assert.AreEqual(7, rs.Count); Assert.AreEqual(58, rs.First()["Age"]); Assert.AreEqual(51, rs.Last()["Age"]); }