Esempio n. 1
0
        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"]);
            
        }
Esempio n. 2
0
    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!!!!!!!!!!!
    }
Esempio n. 3
0
    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);
    }
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
        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() );
        }
Esempio n. 6
0
        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);
        }
Esempio n. 7
0
        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);
        }
Esempio n. 8
0
        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") );
        }
Esempio n. 9
0
        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") );
        }
Esempio n. 10
0
        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);
        }
Esempio n. 11
0
        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"] );
        }