Example #1
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["xchg"]       = "NYSE";
                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.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["xchg"]   = "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!!!!!!!!!!!
        }