public static void ASYNC_QueryInsertQuery(ICRUDDataStore store) { var query = new Query("CRUD.Patient.List") { new Query.Param("LN", "%loff") }; var task = store.LoadAsync( query ); Assert.AreEqual(1, task.Result.Count); var rowset = task.Result[0]; Assert.AreEqual(0, rowset.Count); var row = new DynamicRow(rowset.Schema); row["ssn"] = "999-88-9012"; row["First_Name"] = "Jack"; row["Last_Name"] = "Kozloff"; row["DOB"] = new DateTime(1980, 1, 12); Assert.IsNull( row.Validate()); store.InsertAsync(row).Wait(); task = store.LoadAsync( query ); Assert.AreEqual(1, task.Result.Count); rowset = task.Result[0]; Assert.AreEqual(1, rowset.Count); Assert.AreEqual("Jack", rowset[0]["First_Name"]); }
public void ErlInsertManyDeleteAndQuery() { var schema = store.GetSchema(new Query("CRUD.SECDEF")); for (var i = 0; i < CCY_PAIRS.Length; i++) { var row = new DynamicRow(schema); row.ApplyDefaultFieldValues(store.TargetName); var ccy1 = CCY_PAIRS[i].Substring(0, 3); var ccy2 = CCY_PAIRS[i].Substring(4, 3); row["Exchange"] = "NYSE"; row["Symbol"] = ccy1 + ccy2; row["Instr"] = CCY_PAIRS[i]; row["SecID"] = i; row["ExchSecID"] = 1000 + i; row["Ccy"] = ccy1; row["SettlCcy"] = ccy2; row["ContractMult"] = 1.0d; row["PriceStep"] = 10e-5d; Assert.IsNull(row.Validate()); var affected = store.Upsert(row); Assert.AreEqual(1, affected); } var qry = new Query("CRUD.SecDef.ByExchange") { new Query.Param("Exchange", "NYSE") }; var data = store.LoadOneRowset(qry); Assert.IsNotNull(data); Console.WriteLine(data.ToJSON(JSONWritingOptions.PrettyPrintRowsAsMap)); Assert.AreEqual(CCY_PAIRS.Length, data.Count); var del = new DynamicRow(schema); del["Exchange"] = "CLE"; del["Symbol"] = "USDMXN"; Assert.AreEqual(1, store.Delete(del)); data = store.LoadOneRowset(qry);//NYSE Assert.IsNotNull(data); Assert.AreEqual(CCY_PAIRS.Length, data.Count); qry = new Query("CRUD.SecDef.ByExchange") { new Query.Param("Exchange", "CLE") }; data = store.LoadOneRowset(qry);//Requery for CLE Assert.IsNotNull(data); Assert.AreEqual(CCY_PAIRS.Length - 1, data.Count);//1 was deleted!!!!!!!!!!! }
public void ErlInsert() { var schema = store.GetSchema(new Query("CRUD.SECDEF")); var row = new DynamicRow(schema); row.ApplyDefaultFieldValues(store.TargetName); row["Exchange"] = "HS"; row["Symbol"] = "EURUSD"; row["Instr"] = "EUR/USD"; row["SecID"] = 1; row["ExchSecID"] = 1010; row["Ccy"] = "EUR"; row["SettlCcy"] = "USD"; row["ContractMult"] = 1.0d; row["PriceStep"] = 10e-5d; Assert.IsNull(row.Validate()); var affected = store.Insert(row); Assert.AreEqual(1, affected); }
public void ErlInsertManyAndQuery() { var schema = store.GetSchema(new Query("CRUD.SECDEF")); for (var i = 0; i < CCY_PAIRS.Length; i++) { var row = new DynamicRow(schema); row.ApplyDefaultFieldValues(store.TargetName); var ccy1 = CCY_PAIRS[i].Substring(0, 3); var ccy2 = CCY_PAIRS[i].Substring(4, 3); row["xchg"] = "CLE"; row["symbol"] = ccy1 + ccy2; row["instr"] = CCY_PAIRS[i]; row["secid"] = i; row["xchg_secid"] = 1000 + i; row["ccy"] = ccy1; row["settl_ccy"] = ccy2; row["contr_mult"] = 1.0d; row["px_step"] = 10e-5d; Assert.IsNull(row.Validate()); var affected = store.Insert(row); Assert.AreEqual(1, affected); } var qry = new Query("CRUD.SecDef.ByExchange") { new Query.Param("Exchange", "CLE") }; var data = store.LoadOneRowset(qry); Assert.IsNotNull(data); Console.WriteLine(data.ToJSON(JSONWritingOptions.PrettyPrintRowsAsMap)); Assert.AreEqual(CCY_PAIRS.Length, data.Count); }
public void Validate_Error_ValueList() { var person = new DynamicRow(Schema.GetForTypedRow(typeof(Person))); person["ID"] = "POP1"; person["FirstName"] = "Oleg"; person["LastName"] ="Popov"; person["DOB"] = new DateTime(1981, 2, 12); person["YearsInSpace"] = 45; person["Amount"] = 100; person["Description"] = "0123"; person["Classification"] = "INVALID"; var error = person.Validate(); Console.WriteLine( error ); Assert.IsInstanceOf(typeof(CRUDFieldValidationException), error); Assert.AreEqual("Classification", ((CRUDFieldValidationException)error).FieldName); Assert.IsTrue( error.Message.Contains("not in list of permitted values") ); person["Classification"] = "good"; Assert.IsNull( person.Validate() ); person["Classification"] = "bad"; Assert.IsNull( person.Validate() ); person["Classification"] = "ugly"; Assert.IsNull( person.Validate() ); }
public void ErlInsert() { var schema = store.GetSchema(new Query("CRUD.SECDEF")); var row = new DynamicRow(schema); row.ApplyDefaultFieldValues(store.TargetName); row["xchg"] = "HS"; row["symbol"] = "EURUSD"; row["instr"] = "EUR/USD"; row["secid"] = 1; row["xchg_secid"] = 1010; row["ccy"] = "EUR"; row["settl_ccy"] = "USD"; row["contr_mult"] = 1.0d; row["px_step"] = 10e-5d; Assert.IsNull(row.Validate()); var affected = store.Insert(row); Assert.AreEqual(1, affected); }
public void Validate_Error_StringRequired() { var person = new DynamicRow(Schema.GetForTypedRow(typeof(Person))); person["ID"] = "POP1"; person["FirstName"] = "Oleg"; person["LastName"] = null; person["DOB"] = new DateTime(1953, 12, 10); person["YearsInSpace"] = 12; var error = person.Validate(); Console.WriteLine( error ); Assert.IsInstanceOf(typeof(CRUDFieldValidationException), error); Assert.AreEqual("LastName", ((CRUDFieldValidationException)error).FieldName); }
public void Validate_Error_MaxLength() { var person = new DynamicRow(Schema.GetForTypedRow(typeof(Person))); person["ID"] = "POP1"; person["FirstName"] = "Oleg"; person["LastName"] ="Popov"; person["DOB"] = new DateTime(1981, 2, 12); person["YearsInSpace"] = 45; person["Amount"] = 100; person["Description"] = "0123456789012345678901234567890"; var error = person.Validate(); Console.WriteLine( error ); Assert.IsInstanceOf(typeof(CRUDFieldValidationException), error); Assert.AreEqual("Description", ((CRUDFieldValidationException)error).FieldName); Assert.IsTrue( error.Message.Contains("exceeds max length") ); }
public void Validate_Error_DecimalMinMax_2() { var person = new DynamicRow(Schema.GetForTypedRow(typeof(Person))); person["ID"] = "POP1"; person["FirstName"] = "Oleg"; person["LastName"] ="Popov"; person["DOB"] = new DateTime(1953, 12, 10); person["YearsInSpace"] = 45; person["Amount"] = 2000000; var error = person.Validate(); Console.WriteLine( error ); Assert.IsInstanceOf(typeof(CRUDFieldValidationException), error); Assert.AreEqual("Amount", ((CRUDFieldValidationException)error).FieldName); Assert.IsTrue( error.Message.Contains("is above") ); }
public void Validate_Error_DateTimeMinMax_DifferentTarget() { var person = new DynamicRow(Schema.GetForTypedRow(typeof(Person))); person["ID"] = "POP1"; person["FirstName"] = "Oleg"; person["LastName"] ="Popov"; person["DOB"] = new DateTime(1899, 12, 10); person["YearsInSpace"] = 45; person["Amount"] = 100; var error = person.Validate("sparta_system"); Assert.IsNull (error); }
public void SetGetAndValidate_NoError() { var person = new DynamicRow(Schema.GetForTypedRow(typeof(Person))); person["ID"] = "POP1"; person["FirstName"] = "Oleg"; person["LastName"] = "Popov"; person["DOB"] = new DateTime(1953, 12, 10); person["YearsInSpace"] = 12; var error = person.Validate(); Assert.IsNull( error ); Assert.AreEqual( "POP1", person["ID"] ); Assert.AreEqual( "Oleg", person["FirstName"] ); Assert.AreEqual( "Popov", person["LastName"] ); Assert.AreEqual( new DateTime(1953, 12, 10), person["DOB"] ); Assert.AreEqual( 12, person["YearsInSpace"] ); }