public void CloseOpportunityTest()
        {
            Mock <IOrganizationService> orgSvc = null;
            Mock <MoqHttpMessagehander> fakHttpMethodHander = null;
            CdsServiceClient            cli = null;

            testSupport.SetupMockAndSupport(out orgSvc, out fakHttpMethodHander, out cli);


            orgSvc.Setup(f => f.Execute(It.Is <WinOpportunityRequest>(p => p.OpportunityClose is Entity && ((Entity)p.OpportunityClose).GetAttributeValue <string>("name").Equals("MyName", StringComparison.OrdinalIgnoreCase)))).Returns(new WinOpportunityResponse());
            orgSvc.Setup(f => f.Execute(It.Is <LoseOpportunityRequest>(p => p.OpportunityClose is Entity && ((Entity)p.OpportunityClose).GetAttributeValue <string>("name").Equals("MyName", StringComparison.OrdinalIgnoreCase)))).Returns(new LoseOpportunityResponse());

            Dictionary <string, CdsDataTypeWrapper> inboundData = new Dictionary <string, CdsDataTypeWrapper>();

            inboundData.Add("name", new CdsDataTypeWrapper("MyName", CdsFieldType.String));

            Guid rslt = cli.CloseOpportunity(testSupport._DefaultId, inboundData, opportunityStatusCode: 3);

            Assert.IsType <Guid>(rslt);
            Assert.NotEqual <Guid>(Guid.Empty, rslt);

            rslt = cli.CloseOpportunity(Guid.Empty, inboundData, opportunityStatusCode: 4);
            Assert.IsType <Guid>(rslt);
            Assert.Equal <Guid>(Guid.Empty, rslt);

            rslt = cli.CloseOpportunity(testSupport._DefaultId, inboundData, opportunityStatusCode: 2);
            Assert.IsType <Guid>(rslt);
            Assert.Equal <Guid>(Guid.Empty, rslt);

            rslt = cli.CloseOpportunity(testSupport._DefaultId, inboundData, opportunityStatusCode: 4);
            Assert.IsType <Guid>(rslt);
            Assert.NotEqual <Guid>(Guid.Empty, rslt);

            // Test with projected Activity ID
            inboundData.Add("activityid", new CdsDataTypeWrapper(testSupport._DefaultId, CdsFieldType.Key));
            rslt = cli.CloseOpportunity(testSupport._DefaultId, inboundData, opportunityStatusCode: 4);
            Assert.IsType <Guid>(rslt);
            Assert.NotEqual <Guid>(Guid.Empty, rslt);
            Assert.Equal <Guid>(testSupport._DefaultId, rslt);

            // try with batch
            // Setup a batch
            string BatchRequestName = "TestBatch";
            Guid   batchid          = cli.CreateBatchOperationRequest(BatchRequestName);

            rslt = cli.CloseQuote(testSupport._DefaultId, inboundData, quoteStatusCode: 4, batchId: batchid);
            Assert.IsType <Guid>(rslt);
            Assert.Equal <Guid>(Guid.Empty, rslt);

            // Release batch request
            cli.ReleaseBatchInfoById(batchid);
        }