public static void UpsertWithPredicate(ICRUDDataStore store) { var patient = TestLogic.GetDefaultPatient(); var affected = store.Insert(patient); Assert.AreEqual(1, affected); var query = new Query <Patient>("CRUD.Patient.List") { new Query.Param("LN", "%%") }; var persisted = store.LoadRow(query); persisted.Zip = "010203"; persisted.First_Name = "John"; persisted.Last_Name = "Smith"; affected = store.Upsert(persisted, (r, k, f) => f.Name != "Zip"); Assert.AreEqual(2, affected); var updated = store.LoadRow(query); Assert.IsNotNull(updated); Assert.AreEqual(persisted.SSN, updated.SSN); Assert.AreEqual(persisted.City, updated.City); Assert.AreEqual(persisted.Address1, updated.Address1); Assert.AreEqual(persisted.Address2, updated.Address2); Assert.AreEqual(persisted.Amount, updated.Amount); Assert.AreEqual(persisted.Doctor_Phone, updated.Doctor_Phone); Assert.AreEqual(persisted.Phone, updated.Phone); Assert.AreEqual(persisted.DOB, updated.DOB); Assert.AreEqual(persisted.Note, updated.Note); Assert.AreEqual(persisted.First_Name, updated.First_Name); Assert.AreEqual(persisted.Last_Name, updated.Last_Name); Assert.AreEqual(patient.Zip, updated.Zip); // notice ZIP remains the same }
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.LoadRow(new Query <Types>("CRUD.Types.Load", new GDID(0, 234))); Assert.NotNull(row2); Assert.AreEqual(new GDID(0, 0, 234), row2.GDID); Assert.AreEqual("User1", row2.Screen_Name); Assert.AreEqual("Some user 1", row2.String_Name); Assert.AreEqual("Some user 2", row2.Char_Name); Assert.AreEqual(true, row2.Bool_Char.Value); Assert.AreEqual(true, row2.Bool_Bool.Value); Assert.AreEqual(145670.23m, row2.Amount); Assert.AreEqual(1980, row2.DOB.Value.Year); Assert.AreEqual(145, row2.Age); row.Age = null; row.Bool_Bool = null; row.DOB = null; store.Update(row); var row3 = store.LoadRow(new Query <Types>("CRUD.Types.Load", new GDID(0, 234))); Assert.IsFalse(row3.Age.HasValue); Assert.IsFalse(row3.Bool_Bool.HasValue); Assert.IsFalse(row3.DOB.HasValue); Assert.IsNull(row3["Age"].AsNullableInt()); Assert.IsNull(row3["DOB"].AsNullableDateTime()); Assert.IsNull(row3["Bool_Bool"].AsNullableBool()); }
public static void InsertWithPredicate(ICRUDDataStore store) { var patient = TestLogic.GetDefaultPatient(); var affected = store.Insert(patient, (r, k, f) => f.Name != "State" && f.Name != "Zip"); Assert.AreEqual(1, affected); var query = new Query <Patient>("CRUD.Patient.List") { new Query.Param("LN", "%%") }; var persisted = store.LoadRow(query); Assert.IsNotNull(persisted); Assert.AreEqual(patient.First_Name, persisted.First_Name); Assert.AreEqual(patient.Last_Name, persisted.Last_Name); Assert.AreEqual(patient.SSN, persisted.SSN); Assert.AreEqual(patient.City, persisted.City); Assert.AreEqual(patient.Address1, persisted.Address1); Assert.AreEqual(patient.Address2, persisted.Address2); Assert.AreEqual(patient.Amount, persisted.Amount); Assert.AreEqual(patient.Doctor_Phone, persisted.Doctor_Phone); Assert.AreEqual(patient.Phone, persisted.Phone); Assert.AreEqual(patient.DOB, persisted.DOB); Assert.AreEqual(patient.Note, persisted.Note); Assert.IsNull(persisted.State); Assert.IsNull(persisted.Zip); }
public static void QueryInsertQuery_DynamicRow(ICRUDDataStore store) { var query = new Query <DynamicRow>("CRUD.Patient.List") { new Query.Param("LN", "%ruman") }; var result = store.Load(query); Assert.AreEqual(1, result.Count); var rowset = result[0]; Assert.AreEqual(0, rowset.Count); var row = new Patient(); row.SSN = "999-88-9012"; row.First_Name = "Mans"; row.Last_Name = "Skolopendruman"; row.DOB = new DateTime(1970, 1, 12); Assert.IsNull(row.Validate()); store.Insert(row); var row2 = store.LoadRow(query); Assert.IsNotNull(row2); Assert.IsInstanceOf <DynamicRow>(row2); Assert.AreEqual("Mans", row2["First_Name"]); }
public static void QueryInsertQuery_DynamicRow(ICRUDDataStore store) { var query = new Query<DynamicRow>("CRUD.Patient.List") { new Query.Param("LN", "%ruman") }; var result = store.Load( query ); Assert.AreEqual(1, result.Count); var rowset = result[0]; Assert.AreEqual(0, rowset.Count); var row = new Patient(); row.SSN = "999-88-9012"; row.First_Name = "Mans"; row.Last_Name = "Skolopendruman"; row.DOB = new DateTime(1970, 1, 12); Assert.IsNull( row.Validate()); store.Insert(row); var row2 = store.LoadRow( query ); Assert.IsNotNull(row2); Assert.IsInstanceOf<DynamicRow>( row2 ); Assert.AreEqual("Mans", row2["First_Name"]); }
public static void UpsertWithPredicate(ICRUDDataStore store) { var patient = TestLogic.GetDefaultPatient(); var affected = store.Insert(patient); Assert.AreEqual(1, affected); var query = new Query<Patient>("CRUD.Patient.List") { new Query.Param("LN", "%%") }; var persisted = store.LoadRow(query); persisted.Zip = "010203"; persisted.First_Name = "John"; persisted.Last_Name = "Smith"; affected = store.Upsert(persisted, (r, k, f) => f.Name != "Zip"); Assert.AreEqual(2, affected); var updated = store.LoadRow(query); Assert.IsNotNull(updated); Assert.AreEqual(persisted.SSN, updated.SSN); Assert.AreEqual(persisted.City, updated.City); Assert.AreEqual(persisted.Address1, updated.Address1); Assert.AreEqual(persisted.Address2, updated.Address2); Assert.AreEqual(persisted.Amount, updated.Amount); Assert.AreEqual(persisted.Doctor_Phone, updated.Doctor_Phone); Assert.AreEqual(persisted.Phone, updated.Phone); Assert.AreEqual(persisted.DOB, updated.DOB); Assert.AreEqual(persisted.Note, updated.Note); Assert.AreEqual(persisted.First_Name, updated.First_Name); Assert.AreEqual(persisted.Last_Name, updated.Last_Name); Assert.AreEqual(patient.Zip, updated.Zip); // notice ZIP remains the same }
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.LoadRow(new Query<Types>("CRUD.Types.Load", new GDID(0, 234))); Assert.NotNull(row2); Assert.AreEqual(new GDID(0,0,234), row2.GDID); Assert.AreEqual("User1", row2.Screen_Name); Assert.AreEqual("Some user 1", row2.String_Name); Assert.AreEqual("Some user 2", row2.Char_Name); Assert.AreEqual(true, row2.Bool_Char.Value); Assert.AreEqual(true, row2.Bool_Bool.Value); Assert.AreEqual(145670.23m, row2.Amount); Assert.AreEqual(1980, row2.DOB.Value.Year); Assert.AreEqual(145, row2.Age); row.Age = null; row.Bool_Bool = null; row.DOB = null; store.Update(row); var row3 = store.LoadRow(new Query<Types>("CRUD.Types.Load", new GDID(0, 234))); Assert.IsFalse(row3.Age.HasValue); Assert.IsFalse(row3.Bool_Bool.HasValue); Assert.IsFalse(row3.DOB.HasValue); Assert.IsNull( row3["Age"].AsNullableInt()); Assert.IsNull( row3["DOB"].AsNullableDateTime()); Assert.IsNull( row3["Bool_Bool"].AsNullableBool()); }
public static void InsertWithPredicate(ICRUDDataStore store) { var patient = TestLogic.GetDefaultPatient(); var affected = store.Insert(patient, (r, k, f) => f.Name != "State" && f.Name != "Zip"); Assert.AreEqual(1, affected); var query = new Query<Patient>("CRUD.Patient.List") { new Query.Param("LN", "%%") }; var persisted = store.LoadRow(query); Assert.IsNotNull(persisted); Assert.AreEqual(patient.First_Name, persisted.First_Name); Assert.AreEqual(patient.Last_Name, persisted.Last_Name); Assert.AreEqual(patient.SSN, persisted.SSN); Assert.AreEqual(patient.City, persisted.City); Assert.AreEqual(patient.Address1, persisted.Address1); Assert.AreEqual(patient.Address2, persisted.Address2); Assert.AreEqual(patient.Amount, persisted.Amount); Assert.AreEqual(patient.Doctor_Phone, persisted.Doctor_Phone); Assert.AreEqual(patient.Phone, persisted.Phone); Assert.AreEqual(patient.DOB, persisted.DOB); Assert.AreEqual(patient.Note, persisted.Note); Assert.IsNull(persisted.State); Assert.IsNull(persisted.Zip); }