Exemple #1
0
        public void ErrDuplicate()
        {
            IsReadOnlyTest = true;
            vName          = "Fabric SYSTEM";

            CreateAppAccountOperation.Result result = ExecuteOperation();

            Assert.AreEqual(CreateAppAccountOperation.ResultStatus.DuplicateAppName, result.Status,
                            "Incorrect Status.");
        }
Exemple #2
0
        public void ErrUnexpected()
        {
            MockOpCtx.Setup(x => x.GetSharpflakeId <Vertex>()).Throws(new Exception("x"));

            var op = new CreateAppAccountOperation();

            CreateAppAccountOperation.Result result = op.Execute(MockOpCtx.Object, MockBuild.Object,
                                                                 MockTasks.Object, "name", 1234, 3245);

            Assert.NotNull(result, "Result should be filled.");
            Assert.AreEqual(CreateAppAccountOperation.ResultStatus.UnexpectedError, result.Status,
                            "Incorrect Status");
        }
Exemple #3
0
        public void ErrDuplicateUser()
        {
            //Note: the fault would actually come from a "Create" task
            MockOpCtx.Setup(x => x.GetSharpflakeId <Vertex>()).Throws(new FabDuplicateFault("x"));

            var op = new CreateAppAccountOperation();

            CreateAppAccountOperation.Result result = op.Execute(MockOpCtx.Object, MockBuild.Object,
                                                                 MockTasks.Object, "name", 1234, 3245);

            Assert.NotNull(result, "Result should be filled.");
            Assert.AreEqual(CreateAppAccountOperation.ResultStatus.DuplicateAppName, result.Status,
                            "Incorrect Status");
        }
Exemple #4
0
        public void ErrNotFound(int pType)
        {
            IsReadOnlyTest = true;

            if (pType == 1)
            {
                vCreatorMemberId = 999;
            }
            else
            {
                vUserId = 999;
            }

            CreateAppAccountOperation.Result result = ExecuteOperation();

            Assert.AreEqual(CreateAppAccountOperation.ResultStatus.NotFoundMemberOrUser, result.Status,
                            "Incorrect Status.");
        }
Exemple #5
0
        public void Execute()
        {
            const string name         = "Test App";
            const long   creatorMemId = 123523532;
            const long   userId       = 12316232336666;

            ICreateOperationBuilder build = MockBuild.Object;
            CreateOperationTasks    tasks = MockTasks.Object;

            var expectApp = new App();
            var expectMem = new Member();

            IWeaverVarAlias <App>    appAlias = new WeaverVarAlias <App>("appAlias");
            IWeaverVarAlias <Member> memAlias = new WeaverVarAlias <Member>("memAlias");

            MockBuild
            .Setup(x => x.StartSession())
            .Callback(CheckCallIndex("StartSession"));

            //// Add App

            MockTasks
            .Setup(x => x.FindDuplicateAppNameKey(build, ItIsVert <App>(vNewAppId)))
            .Callback(CheckCallIndex("FindDuplicateAppNameKey"));

            int addAppIndex = CallsAdded;

            MockTasks
            .Setup(x => x.AddApp(build, ItIsVert <App>(vNewAppId), out appAlias))
            .Callback(CheckCallIndex("AddApp"));

            //// Add Member


            MockTasks
            .Setup(x => x.FindDuplicateMember(build, userId, vNewAppId))
            .Callback(CheckCallIndex("FindDuplicateMember"));

            int addMemIndex = CallsAdded;

            MockTasks
            .Setup(x => x.AddMember(build, ItIsVert <Member>(vNewMemId), out memAlias))
            .Callback(CheckCallIndex("AddMember"));

            //// Add App edges

            MockTasks
            .Setup(x => x.AddArtifactCreatedByMember(
                       build,
                       ItIsVert <App>(vNewAppId),
                       It.Is <CreateFabApp>(c => c.CreatedByMemberId == creatorMemId),
                       It.Is <IWeaverVarAlias <Artifact> >(a => a.Name == appAlias.Name)
                       ))
            .Callback(CheckCallIndex("AddArtifactCreatedByMember"));

            //// Add Member edges

            MockTasks
            .Setup(x => x.AddMemberDefinedByApp(
                       build,
                       ItIsVert <Member>(vNewMemId),
                       It.Is <CreateFabMember>(c => c.DefinedByAppId == vNewAppId),
                       It.Is <IWeaverVarAlias <Member> >(a => a.Name == memAlias.Name)
                       ))
            .Callback(CheckCallIndex("AddMemberDefinedByApp"));

            MockTasks
            .Setup(x => x.AddMemberDefinedByUser(
                       build,
                       ItIsVert <Member>(vNewMemId),
                       It.Is <CreateFabMember>(c => c.DefinedByUserId == userId),
                       It.Is <IWeaverVarAlias <Member> >(a => a.Name == memAlias.Name)
                       ))
            .Callback(CheckCallIndex("AddMemberDefinedByUser"));

            //// Finish setup

            MockBuild
            .Setup(x => x.CommitAndCloseSession())
            .Callback(CheckCallIndex("CommitAndCloseSession"));

            MockAcc.Setup(x => x.Execute(typeof(CreateAppAccountOperation).Name))
            .Returns(MockRes.Object);

            MockRes.Setup(x => x.GetCommandIndexByCmdId(vAppCmd)).Returns(addAppIndex);
            MockRes.Setup(x => x.GetCommandIndexByCmdId(vMemCmd)).Returns(addMemIndex);

            MockRes.Setup(x => x.ToElementAt <App>(addAppIndex, 0)).Returns(expectApp);
            MockRes.Setup(x => x.ToElementAt <Member>(addMemIndex, 0)).Returns(expectMem);

            //// Execute

            var op = new CreateAppAccountOperation();

            CreateAppAccountOperation.Result result = op.Execute(MockOpCtx.Object, build, tasks,
                                                                 name, creatorMemId, userId);

            Assert.NotNull(result, "Result should be filled.");
            Assert.AreEqual(CreateAppAccountOperation.ResultStatus.Success, result.Status,
                            "Incorrect Status");
            Assert.AreEqual(expectApp, result.NewApp, "Incorrect NewApp.");
            Assert.AreEqual(expectMem, result.NewMember, "Incorrect NewMember.");
        }
Exemple #6
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.");
            };
        }