private void SetFakesForSaveCampaignItem()
        {
            _isBlastLitRefDeleted         = false;
            _deletedBlastRefId            = new List <int>();
            _savedCampaignItem            = null;
            _isCampaignItemSaved          = false;
            _savedCampaignItemBlast       = null;
            _isCampaignItemBlastSaved     = false;
            _isCampaignSuppressionDeleted = false;
            _isCampaignSuppressionSaved   = false;
            _savedCampaignSuppresseion    = new List <CampaignItemSuppression>();
            _isBlastCreated = false;

            var viewState = Get <StateBag>(_privateTestObject, ViewStateProperty);

            viewState.Add(KeyMyNodeID, "1");

            ShimBlastScheduler.AllInstances.SetupScheduleString = (_, __) => new BlastSetupInfo
            {
                BlastScheduleID = 1,
                SendNowIsAmount = true,
                SendNowAmount   = 1,
                SendTime        = DateTime.UtcNow,
            };

            ShimCustomer.HasProductFeatureInt32EnumsServicesEnumsServiceFeatures = (_, __, ___) => true;

            ShimCampaignItem.SaveCampaignItemUser = (ci, user) =>
            {
                _savedCampaignItem   = ci;
                _isCampaignItemSaved = true;
                return(_savedCampaignItem.CampaignItemID);
            };
            ShimCampaignItemBlastRefBlast.DeleteInt32UserBoolean = (crefId, user, b) =>
            {
                _deletedBlastRefId.Add(crefId);
                _isBlastLitRefDeleted = true;
            };
            ShimCampaignItemBlast.SaveInt32ListOfCampaignItemBlastUser = (cid, cbList, user) =>
            {
                _savedCampaignItemBlast   = cbList[0];
                _isCampaignItemBlastSaved = true;
            };
            ShimCampaignItemSuppression.DeleteInt32UserBoolean = (csid, user, b) =>
            {
                _deletedSuppressionCamapaignId = csid;
                _isCampaignSuppressionDeleted  = true;
            };
            ShimCampaignItemSuppression.SaveCampaignItemSuppressionUser = (csuppression, user) =>
            {
                _savedCampaignSuppresseion.Add(csuppression);
                _isCampaignSuppressionSaved = true;
                return(csuppression.CampaignItemID.Value);
            };
            ShimBlast.CreateBlastsFromCampaignItemInt32UserBoolean = (cid, user, b) =>
            {
                _isBlastCreated = true;
            };
        }
        public void GvCampaigns_RowCommand_Delete_CannotDeleteException()
        {
            //Arrange
            InitilizeTestObjects();

            var eventArgs    = new GridViewCommandEventArgs(null, new CommandEventArgs("deletecampaign", "1"));
            var errorMessage = "";

            ShimUser.IsChannelAdministratorUser = (p1) =>
            {
                return(true);
            };

            ShimCampaignItem.GetByCampaignIDInt32UserBoolean = (p1, p2, p3) =>
            {
                var listCI = new List <CampaignItem>();
                var item   = new CampaignItem
                {
                    CampaignID     = p1,
                    IsDeleted      = false,
                    CampaignItemID = p1
                };

                listCI.Add(item);

                return(listCI);
            };

            ShimCampaignItemBlast.GetByCampaignItemIDInt32UserBoolean = (p1, p2, p3) =>
            {
                var listCIB   = new List <CampaignItemBlast>();
                var blastItem = new CampaignItemBlast
                {
                    CampaignItemID = p1,
                    BlastID        = p1
                };

                var blast = new BlastAB();
                blastItem.Blast = blast;

                listCIB.Add(blastItem);

                return(listCIB);
            };

            ShimManageCampaigns.AllInstances.throwECNExceptionString = (p1, p2) =>
            {
                errorMessage = p2;
            };

            // Act
            privateObject.Invoke("gvCampaigns_RowCommand", new object[] { null, eventArgs });

            //Assert
            errorMessage.ShouldBe("Cannot delete Campaign because it contains Campaign Items");
        }
 private void ResetVariables()
 {
     _isSampleSaved                = false;
     _isBlastCreated               = true;
     _savedSample                  = null;
     _isCampaignItemSaved          = false;
     _savedCampaignItemBlast       = null;
     _savedCampaignItems           = new List <CampaignItem>();
     _savedCampaignItemSuppression = new List <CampaignItemSuppression>();
     _deletedCampaignItemBlastID   = 0;
     _deletedCampaignItemId        = 0;
 }
        private void SetFakesForSaveMethod()
        {
            ResetVariables();
            ShimSample.SaveSampleUser = (sample, user) =>
            {
                _savedSample   = sample;
                _isSampleSaved = true;
            };
            ShimCampaignItem.SaveCampaignItemUser = (ci, user) =>
            {
                _savedCampaignItems.Add(ci);
                _isCampaignItemSaved = true;
                return(ci.CampaignItemID);
            };

            ShimCampaignItemBlastFilter.DeleteByCampaignItemBlastIDInt32 = (cblastId) =>
            {
                _deletedCampaignItemBlastID = cblastId;
            };

            ShimCampaignItemSuppression.Delete_NoAccessCheckInt32UserBoolean = (cId, user, b) =>
            {
                _deletedCampaignItemId = cId;
            };
            ShimCampaignItemSuppression.SaveCampaignItemSuppressionUser = (cis, user) =>
            {
                _savedCampaignItemSuppression.Add(cis);
                return(cis.CampaignItemSuppressionID);
            };
            ShimCampaignItemBlast.SaveCampaignItemBlastUserBoolean = (cblast, user, b) =>
            {
                _savedCampaignItemBlast = cblast;
                return(cblast.CampaignItemBlastID);
            };
            ShimBlast.CreateBlastsFromCampaignItemInt32UserBoolean = (cid, user, b) =>
            {
                _isBlastCreated = true;
            };
        }