public void SetUp()
        {
            vApp          = new App();
            vApp.VertexId = 1234125;
            vApp.Name     = "MyAppName";
            vApp.NameKey  = "myappname";

            vNewName      = "MyNewAppName";
            vUniqueChecks = 0;

            vMockData = new Mock <IOperationData>(MockBehavior.Strict);

            vMockOpCtx = new Mock <IOperationContext>(MockBehavior.Strict);
            vMockOpCtx.SetupGet(x => x.Data).Returns(vMockData.Object);

            vOper = new WebUpdateAppNameOperation();

            ////

            const string expectUniqueScript = "g.V('" + DbName.Vert.App.NameKey + "',_P);";

            var expectUniqueParams = new List <object> {
                vNewName.ToLower()
            };

            vMockData
            .Setup(x => x.Get <App>(It.IsAny <IWeaverQuery>(), "Web-GetAppByName"))
            .Callback((IWeaverScript q, string n) => {
                TestUtil.CheckWeaverScript(q, expectUniqueScript, "_P", expectUniqueParams);
                ++vUniqueChecks;
            })
            .Returns(vApp);
        }
        public void ErrDuplicate()
        {
            IsReadOnlyTest = true;

            const long   appId   = (long)SetupAppId.KinPhoGal;
            const string newName = "The Bookmarker";

            var op = new WebUpdateAppNameOperation();

            TestUtil.Throws <FabDuplicateFault>(() => op.Execute(OpCtx, appId, newName));
        }
        public void Success()
        {
            const long   appId   = (long)SetupAppId.KinPhoGal;
            const string newName = "TestName";

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

            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.EqualTo, newName)
                                  .Has(x => x.NameKey, WeaverStepHasOp.EqualTo, newName.ToLower())
                                  .ToQuery();

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