예제 #1
0
        public void NewReq()
        {
            const string reqId = "myReqId";
            var          r     = new WeaverRequest(reqId);

            Assert.AreEqual(reqId, r.ReqId, "Incorrect ReqId.");
            Assert.Null(r.SessId, "SessId should be null.");
            AssertCmdList(r, 0);
        }
예제 #2
0
        public void AddQueryNoParams(bool pNullParams)
        {
            var param = (pNullParams ? null : new Dictionary <string, IWeaverQueryVal>());

            var        r   = new WeaverRequest();
            RequestCmd cmd = r.AddQuery("g", param);

            AssertCmdList(r, 1);
            AssertCmd(cmd, "query", "g");
        }
예제 #3
0
        public void NewReqSess()
        {
            const string reqId  = "myReqId";
            const string sessId = "mySessId";
            var          r      = new WeaverRequest(reqId, sessId);

            Assert.AreEqual(reqId, r.ReqId, "Incorrect ReqId.");
            Assert.AreEqual(sessId, r.SessId, "Incorrect SessId.");
            AssertCmdList(r, 0);
        }
예제 #4
0
        public void ExecuteRequest()
        {
            var r = new WeaverRequest("1234");

            r.AddQuery("g");

            IResponseResult result = r.Execute(RexConnHost, RexConnPort);

            CheckResult(result, "1234", 1, 1);
        }
예제 #5
0
        public void AddQueries(bool pAsTransaction, bool pAsSession)
        {
            var list = new List <IWeaverQuery>();

            var mockScr = new Mock <IWeaverQuery>();

            mockScr.SetupGet(x => x.Script).Returns("x");
            list.Add(mockScr.Object);

            mockScr = new Mock <IWeaverQuery>();
            mockScr.SetupGet(x => x.Script).Returns("y");
            list.Add(mockScr.Object);

            mockScr = new Mock <IWeaverQuery>();
            mockScr.SetupGet(x => x.Script).Returns("z");
            list.Add(mockScr.Object);

            var r = new WeaverRequest();
            IList <RequestCmd> cmd;

            if (pAsTransaction)
            {
                var mockTx = new Mock <IWeaverTransaction>();
                mockTx.SetupGet(x => x.Queries).Returns(list);

                cmd = r.AddQueries(mockTx.Object, pAsSession);
            }
            else
            {
                cmd = r.AddQueries(list, pAsSession);
            }

            AssertCmdList(r, (pAsSession ? 6 : 3));
            int i = 0;

            if (pAsSession)
            {
                AssertCmd(cmd[i++], "session", "start");
            }

            AssertCmd(cmd[i++], "query", "x");
            AssertCmd(cmd[i++], "query", "y");
            AssertCmd(cmd[i++], "query", "z");

            if (pAsSession)
            {
                AssertCmd(cmd[i++], "session", "commit");
                AssertCmd(cmd[i++], "session", "close");
            }
        }
예제 #6
0
        public void AddQueryWeaverScriptNoParams(bool pNullParams)
        {
            var param = (pNullParams ? null : new Dictionary <string, IWeaverQueryVal>());

            var mockScr = new Mock <IWeaverScript>();

            mockScr.SetupGet(x => x.Script).Returns("x");
            mockScr.SetupGet(x => x.Params).Returns(param);

            var        r   = new WeaverRequest();
            RequestCmd cmd = r.AddQuery(mockScr.Object);

            AssertCmdList(r, 1);
            AssertCmd(cmd, "query", "x");
        }
예제 #7
0
        public void AddQuery()
        {
            const string script = "g.V('ItemId',P0).outE(P1);";
            var          param  = new Dictionary <string, IWeaverQueryVal>();

            param.Add("P0", new WeaverQueryVal("id"));
            param.Add("P1", new WeaverQueryVal("uses"));

            var        r   = new WeaverRequest();
            RequestCmd cmd = r.AddQuery(script, param);

            const string expectScript    = script;
            const string expectParamJson = "{\"P0\":\"id\",\"P1\":\"uses\"}";

            AssertCmdList(r, 1);
            AssertCmd(cmd, "query", expectScript, expectParamJson);
        }
예제 #8
0
        ////////////////////////////////////////////////////////////////////////////////////////////////
        /*--------------------------------------------------------------------------------------------*/
        public void Build(IDataContext pDataCtx)
        {
            vDataCtx = pDataCtx;
            vReq     = new WeaverRequest("0", pDataCtx.ResumeSessionId);

            vRexConnCtx = new RexConnContext(vReq, vDataCtx.RexConnUrl, vDataCtx.RexConnPort);
            vRexConnCtx.SetCacheProvider(vDataCtx.RexConnCacheProv);

            vRexConnCtx.Logger = (level, category, text, ex) => {
                if (ex != null)
                {
                    vLogOutput(this, "RexConn", level + " / " + category + " / " + text + " / " + ex);
                }

                //vLogOutput(this, category, text);
            };

            vSetCmdIds     = vDataCtx.SetCommandIds;
            vOmitCmdTimers = vDataCtx.OmitCommandTimers;
            vCmdIndex      = 0;
        }
예제 #9
0
        public void AddQueryWeaverScript()
        {
            const string script = "g.V('ItemId',P0).outE(P1);";
            var          param  = new Dictionary <string, IWeaverQueryVal>();

            param.Add("P0", new WeaverQueryVal("id"));
            param.Add("P1", new WeaverQueryVal("uses"));

            var mockScr = new Mock <IWeaverScript>();

            mockScr.SetupGet(x => x.Script).Returns(script);
            mockScr.SetupGet(x => x.Params).Returns(param);

            var        r   = new WeaverRequest();
            RequestCmd cmd = r.AddQuery(mockScr.Object);

            const string expectScript    = script;
            const string expectParamJson = "{\"P0\":\"id\",\"P1\":\"uses\"}";

            AssertCmdList(r, 1);
            AssertCmd(cmd, "query", expectScript, expectParamJson);
        }
예제 #10
0
 public class DataAccessFull : DataAccess {     //TEST: DataAccessFull
     ////////////////////////////////////////////////////////////////////////////////////////////////
     /*--------------------------------------------------------------------------------------------*/
     public void Build(WeaverRequest pRequest, IDataContext pDataCtx)
     {
         vDataCtx    = pDataCtx;
         vReq        = pRequest;
         vRexConnCtx = new RexConnContext(vReq, vDataCtx.RexConnUrl, vDataCtx.RexConnPort);
     }
예제 #11
0
 ////////////////////////////////////////////////////////////////////////////////////////////////
 /*--------------------------------------------------------------------------------------------*/
 private void AssertCmdList(WeaverRequest pReq, int pLen)
 {
     Assert.NotNull(pReq.CmdList, "CmdList should be filled.");
     Assert.AreEqual(pLen, pReq.CmdList.Count, "Incorrect CmdList.Count.");
 }