public void PopulateAndDeleteNonExisting() { 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 delete = new Person{ ID = "NONE17" }; var idx = tbl.Delete( delete );//<-------------!!!!!! Assert.IsTrue( idx==-1 ); Assert.AreEqual(1000, tbl.Count); var match = tbl.FindByKey("POP17") as Person; Assert.IsNotNull( match ); }
public void LogChanges_Delete() { 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.Delete( tbl[0] ); Assert.AreEqual(1, tbl.ChangeCount); Assert.AreEqual(0, tbl.Count); Assert.AreEqual(RowChangeType.Delete, tbl.GetChangeAt(0).Value.ChangeType); }
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"]); }