Beispiel #1
0
        public void Success()
        {
            FabOauthLogout result = ExecuteOperation();

            Assert.AreEqual(1, result.Success, "Incorrect Success.");
            Assert.AreEqual(vToken, result.AccessToken, "Incorrect AccessToken.");

            VerificationQueryFunc = () => {
                IWeaverQuery q1 = Weave.Inst.Graph
                                  .V.ExactIndex <Member>(x => x.VertexId, (long)SetupMemberId.FabZach)
                                  .AuthenticatedByOauthAccesses.ToOauthAccess
                                  .Has(x => x.Token)
                                  .ToQuery();

                IWeaverQuery q2 = Weave.Inst.Graph
                                  .V.ExactIndex <Member>(x => x.VertexId, (long)SetupMemberId.FabZach)
                                  .AuthenticatedByOauthAccesses.ToOauthAccess
                                  .Has(x => x.Refresh)
                                  .ToQuery();

                IDataResult dr1 = OpCtx.ExecuteForTest(q1, "OauthLogoutOperation-Token");
                IDataResult dr2 = OpCtx.ExecuteForTest(q2, "OauthLogoutOperation-Refresh");

                Assert.AreEqual(0, dr1.GetCommandResultCount(), "Tokens were not cleared.");
                Assert.AreEqual(0, dr2.GetCommandResultCount(), "Refresh were not cleared.");
            };
        }
Beispiel #2
0
        ////////////////////////////////////////////////////////////////////////////////////////////////
        /*--------------------------------------------------------------------------------------------*/
        private Tuple <int, int> CountVerticesAndEdges()
        {
            var q = new WeaverQuery();

            q.FinalizeQuery("[g.V.count(),g.E.count()]");
            IDataResult data = OpCtx.ExecuteForTest(q, "Base-Count");

            return(new Tuple <int, int>(data.ToIntAt(0, 0), data.ToIntAt(0, 1)));
        }
        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).");
            };
        }
        public void Success()
        {
            const long appId = (long)SetupAppId.KinPhoGal;

            var           op     = new WebUpdateAppSecretOperation();
            SuccessResult result = op.Execute(OpCtx, appId);

            Assert.NotNull(result, "Result should be filled.");
            Assert.True(result.Success, "Incorrect Success.");

            IWeaverQuery verify = Weave.Inst.Graph
                                  .V.ExactIndex <App>(x => x.VertexId, appId)
                                  .Has(x => x.Name, WeaverStepHasOp.NotEqualTo, SetupUsers.KinPhoGalSecret)
                                  .ToQuery();

            VerificationQueryFunc = () => {
                IDataResult dr = OpCtx.ExecuteForTest(verify, "UpdateAppSecret-Verify");
                Assert.AreEqual(1, dr.GetCommandResultCount(), "New element not verified.");
            };
        }
Beispiel #5
0
        public void Success()
        {
            const long   userId  = (long)SetupUserId.Zach;
            const string newPass = "******";

            var           op     = new WebUpdateUserPasswordOperation();
            SuccessResult result = op.Execute(OpCtx, userId, "asdfasdf", newPass);

            Assert.NotNull(result, "Result should be filled.");
            Assert.True(result.Success, "Incorrect Success.");

            IWeaverQuery verify = Weave.Inst.Graph
                                  .V.ExactIndex <User>(x => x.VertexId, userId)
                                  .Has(x => x.Password, WeaverStepHasOp.EqualTo, DataUtil.HashPassword(newPass))
                                  .ToQuery();

            VerificationQueryFunc = () => {
                IDataResult dr = OpCtx.ExecuteForTest(verify, "UpdateUserPassword-Verify");
                Assert.AreEqual(1, dr.GetCommandResultCount(), "New element not verified.");
            };
        }
Beispiel #6
0
        public void SuccessRemove()
        {
            const long   appId      = (long)SetupAppId.Bookmarker;
            const string removeDom  = SetupOauth.DomBook1;
            const string expectDoms = SetupOauth.DomBook2;

            var op     = new WebUpdateAppDomainsOperation();
            App result = op.ExecuteRemove(OpCtx, appId, removeDom);

            Assert.NotNull(result, "Result should be filled.");
            Assert.AreEqual(appId, result.VertexId, "Incorrect VertexId.");
            Assert.AreEqual(expectDoms, result.OauthDomains, "Incorrect OauthDomains.");

            IWeaverQuery verify = Weave.Inst.Graph
                                  .V.ExactIndex <App>(x => x.VertexId, result.VertexId)
                                  .Has(x => x.OauthDomains, WeaverStepHasOp.EqualTo, expectDoms)
                                  .ToQuery();

            VerificationQueryFunc = () => {
                IDataResult dr = OpCtx.ExecuteForTest(verify, "RemoveAppDomain-Verify");
                Assert.AreEqual(1, dr.GetCommandResultCount(), "New element not verified.");
            };
        }
Beispiel #7
0
        public void Success()
        {
            CreateAppAccountOperation.Result result = ExecuteOperation();

            Assert.AreEqual(CreateAppAccountOperation.ResultStatus.Success, result.Status,
                            "Incorrect Status.");

            XCreateOperation.CheckNewVertex(result.NewApp, VertexType.Id.App);
            XCreateOperation.CheckNewVertex(result.NewMember, VertexType.Id.Member);

            Assert.AreEqual(vName, result.NewApp.Name, "Incorrect NewApp.Name.");
            Assert.AreEqual((byte)MemberType.Id.DataProv, result.NewMember.MemberType,
                            "Incorrect NewMember.MemberType.");

            NewVertexCount = 2;
            NewEdgeCount   = 6;

            const WeaverStepHasOp  eq = WeaverStepHasOp.EqualTo;
            IWeaverStepAs <App>    appAlias;
            IWeaverStepAs <Member> memAlias;
            IWeaverStepAs <Member> creMemAlias;
            IWeaverStepAs <User>   userAlias;

            //Confirm new App and two edges
            IWeaverQuery verifyApp = Weave.Inst.Graph
                                     .V.ExactIndex <App>(x => x.VertexId, result.NewApp.VertexId)
                                     .As(out appAlias)
                                     .DefinesMembers
                                     .Has(x => x.UserId, eq, vUserId)
                                     .Has(x => x.MemberType, eq, (byte)MemberType.Id.DataProv)
                                     .Has(x => x.Timestamp, eq, result.NewMember.Timestamp)
                                     .ToMember
                                     .Has(x => x.VertexId, eq, result.NewMember.VertexId)
                                     .Back(appAlias)
                                     .CreatedByMember.ToMember
                                     .Has(x => x.VertexId, eq, vCreatorMemberId)
                                     .Back(appAlias)
                                     .ToQuery();

            //Confirm new Member and two edges
            IWeaverQuery verifyMem = Weave.Inst.Graph
                                     .V.ExactIndex <Member>(x => x.VertexId, result.NewMember.VertexId)
                                     .As(out memAlias)
                                     .DefinedByApp.ToApp
                                     .Has(x => x.VertexId, eq, result.NewApp.VertexId)
                                     .Back(memAlias)
                                     .DefinedByUser.ToUser
                                     .Has(x => x.VertexId, eq, vUserId)
                                     .Back(memAlias)
                                     .ToQuery();

            //Confirm creator Member and one new edge
            IWeaverQuery verifyCreatorMem = Weave.Inst.Graph
                                            .V.ExactIndex <Member>(x => x.VertexId, vCreatorMemberId)
                                            .As(out creMemAlias)
                                            .CreatesArtifacts
                                            .Has(x => x.VertexType, eq, (byte)VertexType.Id.App)
                                            .Has(x => x.Timestamp, eq, result.NewApp.Timestamp)
                                            .ToArtifact
                                            .Has(x => x.VertexId, eq, result.NewApp.VertexId)
                                            .Back(creMemAlias)
                                            .ToQuery();

            //Confirm new Member's User and one new edge
            IWeaverQuery verifyDataProvUser = Weave.Inst.Graph
                                              .V.ExactIndex <User>(x => x.VertexId, vUserId)
                                              .As(out userAlias)
                                              .DefinesMembers
                                              .Has(x => x.AppId, eq, result.NewApp.VertexId)
                                              .Has(x => x.MemberType, eq, (byte)MemberType.Id.DataProv)
                                              .Has(x => x.Timestamp, eq, result.NewMember.Timestamp)
                                              .ToMember
                                              .Has(x => x.VertexId, eq, result.NewMember.VertexId)
                                              .Back(userAlias)
                                              .ToQuery();

            VerificationQueryFunc = () => {
                IDataResult dr = OpCtx.ExecuteForTest(verifyApp, "CreateAppAccountOperation-VerifyA");
                Assert.AreEqual(1, dr.GetCommandResultCount(), "New App not verified.");

                dr = OpCtx.ExecuteForTest(verifyMem, "CreateAppAccountOperation-VerifyM");
                Assert.AreEqual(1, dr.GetCommandResultCount(), "New Member not verified.");

                dr = OpCtx.ExecuteForTest(verifyCreatorMem, "CreateAppAccountOperation-VerifyCM");
                Assert.AreEqual(1, dr.GetCommandResultCount(), "Creator Member not verified.");

                dr = OpCtx.ExecuteForTest(verifyDataProvUser, "CreateAppAccountOperation-VerifyDPU");
                Assert.AreEqual(1, dr.GetCommandResultCount(), "DataProv User not verified.");
            };
        }
Beispiel #8
0
        public void Success()
        {
            CreateUserAccountOperation.Result result = ExecuteOperation();

            Assert.AreEqual(CreateUserAccountOperation.ResultStatus.Success, result.Status,
                            "Incorrect Status.");

            XCreateOperation.CheckNewVertex(result.NewUser, VertexType.Id.User);
            XCreateOperation.CheckNewVertex(result.NewMember, VertexType.Id.Member);
            XCreateOperation.CheckNewVertex(result.NewEmail, VertexType.Id.Email);

            Assert.AreEqual(vUsername, result.NewUser.Name, "Incorrect NewUser.Name.");
            Assert.AreEqual((byte)MemberType.Id.Member, result.NewMember.MemberType,
                            "Incorrect NewMember.MemberType.");
            Assert.AreEqual(vEmail, result.NewEmail.Address, "Incorrect NewEmail.Address.");

            NewVertexCount = 3;
            NewEdgeCount   = 8;

            const WeaverStepHasOp  eq = WeaverStepHasOp.EqualTo;
            IWeaverStepAs <User>   userAlias;
            IWeaverStepAs <Member> memAlias;
            IWeaverStepAs <Member> creMemAlias;
            IWeaverStepAs <App>    appAlias;
            IWeaverStepAs <Email>  emailAlias;

            //Confirm new User and three edges
            IWeaverQuery verifyUser = Weave.Inst.Graph
                                      .V.ExactIndex <User>(x => x.VertexId, result.NewUser.VertexId)
                                      .As(out userAlias)
                                      .DefinesMembers
                                      .Has(x => x.AppId, eq, (long)SetupAppId.FabSys)
                                      .Has(x => x.MemberType, eq, (byte)MemberType.Id.Member)
                                      .Has(x => x.Timestamp, eq, result.NewMember.Timestamp)
                                      .ToMember
                                      .Has(x => x.VertexId, eq, result.NewMember.VertexId)
                                      .Back(userAlias)
                                      .CreatedByMember.ToMember
                                      .Has(x => x.VertexId, eq, result.NewMember.VertexId)
                                      .Back(userAlias)
                                      .UsesEmails.ToEmail
                                      .Has(x => x.Address, eq, vEmail)
                                      .Back(userAlias)
                                      .ToQuery();

            //Confirm new Member and two edges
            IWeaverQuery verifyMem = Weave.Inst.Graph
                                     .V.ExactIndex <Member>(x => x.VertexId, result.NewMember.VertexId)
                                     .As(out memAlias)
                                     .DefinedByApp.ToApp
                                     .Has(x => x.VertexId, eq, (long)SetupAppId.FabSys)
                                     .Back(memAlias)
                                     .DefinedByUser.ToUser
                                     .Has(x => x.VertexId, eq, result.NewUser.VertexId)
                                     .Back(memAlias)
                                     .ToQuery();

            //Confirm creator Member and one new edge
            IWeaverQuery verifyCreatorMem = Weave.Inst.Graph
                                            .V.ExactIndex <Member>(x => x.VertexId, result.NewMember.VertexId)
                                            .As(out creMemAlias)
                                            .CreatesArtifacts
                                            .Has(x => x.VertexType, eq, (byte)VertexType.Id.User)
                                            .Has(x => x.Timestamp, eq, result.NewUser.Timestamp)
                                            .ToArtifact
                                            .Has(x => x.VertexId, eq, result.NewUser.VertexId)
                                            .Back(creMemAlias)
                                            .ToQuery();

            //Confirm new Member's App and one new edge
            IWeaverQuery verifyCreatorUser = Weave.Inst.Graph
                                             .V.ExactIndex <App>(x => x.VertexId, (long)SetupAppId.FabSys)
                                             .As(out appAlias)
                                             .DefinesMembers
                                             .Has(x => x.UserId, eq, result.NewUser.VertexId)
                                             .Has(x => x.MemberType, eq, (byte)MemberType.Id.Member)
                                             .Has(x => x.Timestamp, eq, result.NewMember.Timestamp)
                                             .ToMember
                                             .Has(x => x.VertexId, eq, result.NewMember.VertexId)
                                             .Back(appAlias)
                                             .ToQuery();

            //Confirm new Email and one edge
            IWeaverQuery verifyEmail = Weave.Inst.Graph
                                       .V.ExactIndex <Email>(x => x.VertexId, result.NewEmail.VertexId)
                                       .As(out emailAlias)
                                       .UsedByArtifact.ToArtifact
                                       .Has(x => x.VertexId, eq, result.NewUser.VertexId)
                                       .Back(emailAlias)
                                       .ToQuery();

            VerificationQueryFunc = () => {
                IDataResult dr = OpCtx.ExecuteForTest(verifyUser, "CreateUserAccountOperation-VerifyU");
                Assert.AreEqual(1, dr.GetCommandResultCount(), "New User not verified.");

                dr = OpCtx.ExecuteForTest(verifyMem, "CreateUserAccountOperation-VerifyM");
                Assert.AreEqual(1, dr.GetCommandResultCount(), "New Member not verified.");

                dr = OpCtx.ExecuteForTest(verifyCreatorMem, "CreateUserAccountOperation-VerifyCM");
                Assert.AreEqual(1, dr.GetCommandResultCount(), "Creator Member not verified.");

                dr = OpCtx.ExecuteForTest(verifyCreatorUser, "CreateUserAccountOperation-VerifyCU");
                Assert.AreEqual(1, dr.GetCommandResultCount(), "Creator User not verified.");

                dr = OpCtx.ExecuteForTest(verifyEmail, "CreateUserAccountOperation-VerifyE");
                Assert.AreEqual(1, dr.GetCommandResultCount(), "New Email not verified.");
            };
        }
Beispiel #9
0
        public void TearDown()
        {
#if LIVE
            Assert.Fail("Skipping TearDown in LIVE mode.");
#endif
            TestPreTearDown();

            Log.Info("");
            Log.Info("=====================================");
            Log.Info("");
            Log.Info("Core test time: " + vWatch2.ElapsedMilliseconds + "ms");
            Log.Info("TearDown started at T = " + GetTime());

            ////

            AssertionException verifEx = null;

            if (VerificationQueryFunc != null)
            {
                try {
                    VerificationQueryFunc();
                }
                catch (AssertionException e) {
                    verifEx = e;
                }
            }

            Tuple <int, int> c = CountVerticesAndEdges();
            Log.Info("Counts { V = " + c.Item1 + ", E = " + c.Item2 + " }");

            int vertexDiff = c.Item1 - vCounts.Item1;
            int edgeDiff   = c.Item2 - vCounts.Item2;

            if (IsReadOnlyTest &&
                (vertexDiff != 0 || edgeDiff != 0 || NewVertexCount != 0 || NewEdgeCount != 0))
            {
                Log.Info("");
                Log.Info("WARNING: Overriding read-only mode due to counts: " +
                         vertexDiff + ", " + edgeDiff + ", " + NewVertexCount + ", " + NewEdgeCount);
                Log.Info("");
                IsReadOnlyTest = false;
            }

            if (!IsReadOnlyTest)
            {
                var q = new WeaverQuery();
                q.FinalizeQuery("g.V.remove();1");
                IDataResult remAllData = OpCtx.ExecuteForTest(q, "Remove-All");

                q = new WeaverQuery();
                q.FinalizeQuery("g.loadGraphSON('../db/FabricBackups/FabricTest.json');1");
                IDataResult reloadData = OpCtx.ExecuteForTest(q, "Reset-Data");

                Assert.AreEqual("1", remAllData.ToStringAt(0, 0),
                                "There was an issue with the RemoveAll query!");
                Assert.AreEqual("1", reloadData.ToStringAt(0, 0),
                                "There was an issue with the Reload query!");
                Log.Info("");
            }
            else
            {
                Log.Info("READ ONLY MODE: skipped database reset");
            }

            Assert.AreEqual(NewVertexCount, vertexDiff, "Incorrect new vertex count.");
            Assert.AreEqual(NewEdgeCount, edgeDiff, "Incorrect new edge count.");

            if (IsReadOnlyTest)
            {
                Assert.AreEqual(0, NewVertexCount, "NewVertexCount should be zero!");
                Assert.AreEqual(0, NewEdgeCount, "NewEdgeCount should be zero!");
            }

            if (verifEx != null)
            {
                throw verifEx;
            }

            ////

            TestPostTearDown();
            OpCtx = null;

            Log.Info("TearDown complete at T = " + GetTime());
        }