public static void UpdateWithPredicate(ICrudDataStore store) { var patient = TestLogic.GetDefaultPatient(); var affected = store.Insert(patient); Aver.AreEqual(1, affected); var query = new Query <Patient>("CRUD.Queries.Patient.List") { new Query.Param("LN", "%%") }; var persisted = store.LoadDoc(query); persisted.Zip = "010203"; persisted.First_Name = "John"; persisted.Last_Name = "Smith"; affected = store.Update(persisted, null, (r, k, f) => f.Name != "First_Name" && f.Name != "Zip"); Aver.AreEqual(1, affected); var updated = store.LoadDoc(query); Aver.IsNotNull(updated); Aver.AreEqual(persisted.SSN, updated.SSN.Trim()); Aver.AreEqual(persisted.City, updated.City); Aver.AreEqual(persisted.Address1, updated.Address1); Aver.AreEqual(persisted.Address2, updated.Address2); Aver.AreEqual(persisted.Amount, updated.Amount); Aver.AreEqual(persisted.Doctor_Phone, updated.Doctor_Phone); Aver.AreEqual(persisted.Phone, updated.Phone.Trim()); Aver.AreEqual(persisted.DOB, updated.DOB); Aver.AreEqual(persisted.Note, updated.Note); Aver.AreEqual(patient.First_Name, updated.First_Name); Aver.AreEqual(persisted.Last_Name, updated.Last_Name); Aver.AreEqual(patient.Zip, updated.Zip); }
public static void TypedRowTestVariousTypes(ICrudDataStore store) { var row = new Types(); row.GDID = new GDID(0, 234); row.Screen_Name = "User1"; row.String_Name = "Some user 1"; row.Char_Name = "Some user 2"; row.Bool_Char = true; //notice TRUE for both char and bool columns below row.Bool_Bool = true; row["AMOUNT"] = 145670.23m; row["DOB"] = new DateTime(1980, 12, 1); row["Age"] = 145; store.Insert(row); var row2 = store.LoadDoc(new Query <Types>("CRUD.Queries.Types.Load", new GDID(0, 234))); Aver.IsNotNull(row2); Aver.AreEqual(new GDID(0, 0, 234), row2.GDID); Aver.AreEqual("User1", row2.Screen_Name); Aver.AreEqual("Some user 1", row2.String_Name); Aver.AreEqual("Some user 2", row2.Char_Name); Aver.AreEqual(true, row2.Bool_Char.Value); Aver.AreEqual(true, row2.Bool_Bool.Value); Aver.AreEqual(145670.23m, row2.Amount); Aver.AreEqual(1980, row2.DOB.Value.Year); Aver.AreEqual(145, row2.Age); row.Age = null; row.Bool_Bool = null; row.DOB = null; store.Update(row); var row3 = store.LoadDoc(new Query <Types>("CRUD.Queries.Types.Load", new GDID(0, 234))); Aver.IsFalse(row3.Age.HasValue); Aver.IsFalse(row3.Bool_Bool.HasValue); Aver.IsFalse(row3.DOB.HasValue); Aver.IsNull(row3["Age"].AsNullableInt()); Aver.IsNull(row3["DOB"].AsNullableDateTime()); Aver.IsNull(row3["Bool_Bool"].AsNullableBool()); }
public static void InsertThenUpdate_TypedRow(ICrudDataStore store) { for (var i = 0; i < 10; i++) { store.Insert(new Patient { SSN = i.ToString(), First_Name = "Jack", Last_Name = "Kozloff_" + i, DOB = new DateTime(1980, 1, 12) }); } var result = store.Load(new Query("CRUD.Queries.Patient.List", typeof(Patient)) { new Query.Param("LN", "%loff_5") })[0]; Aver.AreEqual(1, result.Count); var row = result[0] as Patient; Aver.AreEqual("5", row.SSN.Trim()); row.Last_Name = "Gagarin"; store.Update(row); result = store.Load(new Query("CRUD.Queries.Patient.List", typeof(Patient)) { new Query.Param("LN", "%loff_5") })[0]; Aver.AreEqual(0, result.Count); result = store.Load(new Query("CRUD.Queries.Patient.List", typeof(Patient)) { new Query.Param("LN", "%garin") })[0]; Aver.AreEqual(1, result.Count); Aver.AreObjectsEqual("5", result[0]["SSN"].AsString().Trim()); Aver.AreObjectsEqual("Gagarin", result[0]["Last_Name"]); }