コード例 #1
0
        public void Success()
        {
            const long          memId   = (long)SetupMemberId.BookZach;
            const MemberType.Id newType = MemberType.Id.Staff;

            var    op     = new WebUpdateMemberTypeOperation();
            Member result = op.Execute(OpCtx, memId, newType);

            Assert.NotNull(result, "Result should be filled.");
            Assert.AreEqual(memId, result.VertexId, "Incorrect VertexId.");
            Assert.AreEqual((byte)newType, result.MemberType, "Incorrect MemberType.");

            IWeaverQuery memQ = Weave.Inst.Graph
                                .V.ExactIndex <Member>(x => x.VertexId, memId)
                                .Has(x => x.MemberType, WeaverStepHasOp.EqualTo, (byte)newType)
                                .ToQuery();

            IWeaverQuery userDefMemQ = Weave.Inst.Graph
                                       .V.ExactIndex <User>(x => x.VertexId, (byte)SetupUserId.Zach)
                                       .DefinesMembers
                                       .Has(x => x.AppId, WeaverStepHasOp.EqualTo, (byte)SetupAppId.Bookmarker)
                                       .Has(x => x.MemberType, WeaverStepHasOp.EqualTo, (byte)newType)
                                       .ToMember
                                       .ToQuery();

            IWeaverQuery appDefMemQ = Weave.Inst.Graph
                                      .V.ExactIndex <App>(x => x.VertexId, (byte)SetupAppId.Bookmarker)
                                      .DefinesMembers
                                      .Has(x => x.UserId, WeaverStepHasOp.EqualTo, (byte)SetupUserId.Zach)
                                      .Has(x => x.MemberType, WeaverStepHasOp.EqualTo, (byte)newType)
                                      .ToMember
                                      .ToQuery();

            VerificationQueryFunc = () => {
                IDataResult dr = OpCtx.ExecuteForTest(memQ, "UpdateMemType1-Verify");
                Assert.AreEqual(1, dr.GetCommandResultCount(), "New element not verified (1).");

                dr = OpCtx.ExecuteForTest(userDefMemQ, "UpdateMemType2-Verify");
                Assert.AreEqual(1, dr.GetCommandResultCount(), "New element not verified (2).");

                dr = OpCtx.ExecuteForTest(appDefMemQ, "UpdateMemType3-Verify");
                Assert.AreEqual(1, dr.GetCommandResultCount(), "New element not verified (3).");
            };
        }
コード例 #2
0
        public void Success()
        {
            const long userId = 1342653246;
            const long appId  = 4634634;

            var mockDataAcc = MockDataAccess.Create(mda => {
                Assert.AreEqual(MockDataAccess.SessionStart, mda.GetCommand(0).SessionAction,
                                "Incorrect Command 0 SessionAction.");

                string expectScript = "m=g.V('" + DbName.Vert.Vertex.VertexId + "',_P).next();";
                var expectParam     = new List <object> {
                    vMem.VertexId
                };
                TestUtil.CheckWeaverScript(mda.GetCommand(1), expectScript, "_P", expectParam);

                expectScript = "m.outE('" + DbName.Edge.MemberDefinedByUserName + "')" +
                               ".inV.property('" + DbName.Vert.Vertex.VertexId + "');";
                expectParam = new List <object>();
                TestUtil.CheckWeaverScript(mda.GetCommand(2), expectScript, "_P", expectParam);

                expectScript = "m.outE('" + DbName.Edge.MemberDefinedByAppName + "')" +
                               ".inV.property('" + DbName.Vert.Vertex.VertexId + "');";
                expectParam = new List <object>();
                TestUtil.CheckWeaverScript(mda.GetCommand(3), expectScript, "_P", expectParam);

                Assert.AreEqual(MockDataAccess.SessionClose, mda.GetCommand(4).SessionAction,
                                "Incorrect Command 4 SessionAction.");

                Assert.AreEqual("Web-GetMemberDetails",
                                mda.Object.ExecuteName, "Incorrect ExecuteName.");
            });

            mockDataAcc.MockResult
            .Setup(x => x.ToLongAt(2, 0))
            .Returns(userId);

            mockDataAcc.MockResult
            .Setup(x => x.ToLongAt(3, 0))
            .Returns(appId);

            vMockData
            .Setup(x => x.Build(null, false, true))
            .Returns(mockDataAcc.Object);

            ////

            const string expectUpdateScript =
                "g.V('" + DbName.Vert.Vertex.VertexId + "',_P)" +
                ".sideEffect{it.setProperty('" + DbName.Vert.Member.MemberType + "',_P);}" +
                ".outE('" + DbName.Edge.MemberDefinedByUserName + "').inV" +
                ".outE('" + DbName.Edge.UserDefinesMemberName + "')" +
                ".has('" + DbName.Edge.UserDefinesMember.AppId + "',Tokens.T.eq,_P)" +
                ".sideEffect{it.setProperty('" + DbName.Edge.UserDefinesMember.MemberType + "',_P);}" +
                ".inV" +
                ".outE('" + DbName.Edge.MemberDefinedByAppName + "').inV" +
                ".outE('" + DbName.Edge.AppDefinesMemberName + "')" +
                ".has('" + DbName.Edge.AppDefinesMember.UserId + "',Tokens.T.eq,_P)" +
                ".sideEffect{it.setProperty('" + DbName.Edge.AppDefinesMember.MemberType + "',_P);}" +
                ".inV;";

            var expectUpdateParams = new List <object> {
                vMem.VertexId,
                (byte)vNewMemTypeId,
                appId,
                (byte)vNewMemTypeId,
                userId,
                (byte)vNewMemTypeId
            };

            vMockData
            .Setup(x => x.Get <Member>(It.IsAny <IWeaverQuery>(), "Web-UpdateMemberType"))
            .Callback((IWeaverScript q, string n) =>
                      TestUtil.CheckWeaverScript(q, expectUpdateScript, "_P", expectUpdateParams))
            .Returns(vMem);

            ////

            Member result = vOper.Execute(vMockOpCtx.Object, vMem.VertexId, vNewMemTypeId);

            Assert.AreEqual(vMem, result, "Incorrect result.");
        }