public void ErrDuplicate() { IsReadOnlyTest = true; vName = "Fabric SYSTEM"; CreateAppAccountOperation.Result result = ExecuteOperation(); Assert.AreEqual(CreateAppAccountOperation.ResultStatus.DuplicateAppName, result.Status, "Incorrect Status."); }
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"); }
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"); }
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."); }
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."); }
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."); }; }