Example #1
0
        private void SetUpPreview(int lpid, bool data)
        {
            if (data)
            {
                DataLayerFakes.ShimLandingPageAssign.GetPreviewParameters_BaseChannelInt32Int32 = (x, y) => CreateDataTable();
            }
            else
            {
                DataLayerFakes.ShimLandingPageAssign.GetPreviewParameters_BaseChannelInt32Int32 = (x, y) => new DataTable();
            }
            var landingPageAssign = new LandingPageAssign()
            {
                LPAID = 1,
                LPID  = lpid
            };

            DataLayerFakes.ShimLandingPageAssign.GetSqlCommand = (x) => landingPageAssign;
            var landingPageAssignContent = new LandingPageAssignContent()
            {
                LPAID = 1
            };
            var landingpageAssignContentList = new List <LandingPageAssignContent> {
                landingPageAssignContent
            };

            DataLayerFakes.ShimLandingPageAssignContent.GetListSqlCommand = (x) => landingpageAssignContentList;
        }
        public void BtnSaveClick_NullLandingPageAssignAndNonEmptyThankYouText_UpdateControlsAndRedirectToBaseChannelMainPage()
        {
            // Arrange
            var listOptions = ReflectionHelper.GetFieldInfoFromInstanceTypeByName(typeof(CustomerAbuse), "_listOptions");

            listOptions.SetValue(
                null,
                new List <LandingPageOption>()
            {
                new LandingPageOption()
                {
                    LPOID = LandingPageID,
                    Name  = TextContainsThankYou
                }
            });

            LandingPageAssignContent landingPageAssignContentParameterValue = null;
            var landingPageAssignContent = new Mock <ILandingPageAssignContent>();

            landingPageAssignContent
            .Setup(x => x.Save(It.IsAny <LandingPageAssignContent>(), It.IsAny <User>()))
            .Callback <LandingPageAssignContent, User>((landingPageAssignContentValue, userValue) =>
            {
                landingPageAssignContentParameterValue = landingPageAssignContentValue;
            });

            var customerAbuse = CreateCustomerAbuse(landingPageAssignContent);

            InitializeControls(customerAbuse, NonEmptyText, NonEmptyText, NonEmptyText);

            // Act
            var parameters = new object[] { null, null };

            ReflectionHelper.ExecuteMethod(customerAbuse, "btnSave_Click", parameters);

            // Assert
            var landingPageAssign = ReflectionHelper.GetFieldInfoFromInstanceByName(customerAbuse, FieldLandingPageAssign).GetValue(customerAbuse) as LandingPageAssign;

            landingPageAssign.ShouldSatisfyAllConditions(
                () => landingPageAssign.ShouldNotBeNull(),
                () => landingPageAssign.LPID.ShouldBe(LandingPageID),
                () => landingPageAssign.CustomerDoesOverride.HasValue.ShouldBeTrue(),
                () => landingPageAssign.CustomerDoesOverride.Value.ShouldBeFalse(),
                () => landingPageAssign.Header.ShouldBe(NonEmptyText),
                () => landingPageAssign.Footer.ShouldBe(NonEmptyText),
                () => landingPageAssign.UpdatedUserID.ShouldBe(DummyUserID));

            landingPageAssignContentParameterValue.ShouldSatisfyAllConditions(
                () => landingPageAssignContentParameterValue.ShouldNotBeNull(),
                () => landingPageAssignContentParameterValue.Display.ShouldBe(NonEmptyText),
                () => landingPageAssignContentParameterValue.CreatedUserID.ShouldBe(DummyUserID),
                () => landingPageAssignContentParameterValue.LPAID = landingPageAssign.LPAID,
                () => landingPageAssignContentParameterValue.LPOID = LandingPageID);

            var previewButton = ReflectionHelper.GetFieldInfoFromInstanceByName(customerAbuse, PreviewButtonName).GetValue(customerAbuse) as Button;

            previewButton.ShouldSatisfyAllConditions(
                () => previewButton.ShouldNotBeNull(),
                () => previewButton.Enabled.ShouldBeTrue(),
                () => previewButton.Visible.ShouldBeTrue(),
                () => previewButton.CssClass.ShouldBe(ECNButtonMedium),
                () => previewButton.Attributes.ShouldNotBeNull(),
                () => previewButton.Attributes.Count.ShouldBe(1),
                () => previewButton.Attributes["onclick"].ShouldNotBeNull(),
                () => previewButton.Attributes["onclick"].ShouldBe(
                    string.Format(
                        "window.open('{0}/engines/reportSpam.aspx?p=&preview=-1', 'popup_window', 'width=1000,height=750,resizable=yes');",
                        ConfigurationManager.AppSettings[ActivityDomainPathKey])));

            var sentBlastsLabel = ReflectionHelper
                                  .GetFieldInfoFromInstanceByName(customerAbuse, "lblSentBlastsWarning")
                                  .GetValue(customerAbuse)
                                  as Label;

            sentBlastsLabel.ShouldSatisfyAllConditions(
                () => sentBlastsLabel.ShouldNotBeNull(),
                () => sentBlastsLabel.Text.ShouldBe(NonEmptyText));

            var customOverrideWarning = ReflectionHelper
                                        .GetFieldInfoFromInstanceByName(customerAbuse, "lblCustomerOverrideWarning")
                                        .GetValue(customerAbuse)
                                        as Label;

            customOverrideWarning.ShouldSatisfyAllConditions(
                () => customOverrideWarning.ShouldNotBeNull(),
                () => customOverrideWarning.Text.ShouldBe(
                    "Note: The above settings will not be visible to customers until you override the Basechannel settings."));

            var errorMessageLabel = ReflectionHelper
                                    .GetFieldInfoFromInstanceByName(customerAbuse, "lblErrorMessage")
                                    .GetValue(customerAbuse)
                                    as Label;

            errorMessageLabel.ShouldSatisfyAllConditions(
                () => errorMessageLabel.ShouldNotBeNull(),
                () => errorMessageLabel.Text.ShouldBe(NonEmptyText));

            _response.Verify(x => x.Redirect("CustomerMain.aspx"), Times.Once());
        }
        public void BtnSaveClick_NullLandingPageAssignAndNonEmptyThankYouText_UpdateControlsAndRedirectToBaseChannelMainPage()
        {
            // Arrange
            var listOptions = ReflectionHelper.GetFieldInfoFromInstanceTypeByName(typeof(BaseChannelAbuse), "_listOptions");

            listOptions.SetValue(
                null,
                new List <LandingPageOption>()
            {
                new LandingPageOption()
                {
                    LPOID = LandingPageID,
                    Name  = TextContainsThankYou
                }
            });

            LandingPageAssignContent landingPageAssignContentParameterValue = null;
            var landingPageAssignContent = new Mock <ILandingPageAssignContent>();

            landingPageAssignContent
            .Setup(x => x.Save(It.IsAny <LandingPageAssignContent>(), It.IsAny <User>()))
            .Callback <LandingPageAssignContent, User>((landingPageAssignContentValue, userValue) =>
            {
                landingPageAssignContentParameterValue = landingPageAssignContentValue;
            });

            _channel = CreateChannel(null, true, null, landingPageAssignContent);
            InitializeControls(NonEmptyText, NonEmptyText, NonEmptyText);

            // Act
            var parameters = new object[] { null, null };

            ReflectionHelper.ExecuteMethod(_channel, "btnSave_Click", parameters);

            // Assert
            var landingPageAssign = ReflectionHelper.GetFieldInfoFromInstanceByName(_channel, FieldLandingPageAssign).GetValue(_channel) as LandingPageAssign;

            landingPageAssign.ShouldSatisfyAllConditions(
                () => landingPageAssign.ShouldNotBeNull(),
                () => landingPageAssign.CreatedUserID.ShouldBe(DummyUserID),
                () => landingPageAssign.BaseChannelID.HasValue.ShouldBeTrue(),
                () => landingPageAssign.BaseChannelID.Value.ShouldBe(DummyBaseChannelID),
                () => landingPageAssign.LPID.ShouldBe(LandingPageID),
                () => landingPageAssign.BaseChannelDoesOverride.Value.ShouldNotBeNull(),
                () => landingPageAssign.BaseChannelDoesOverride.Value.ShouldBeFalse(),
                () => landingPageAssign.CustomerCanOverride.Value.ShouldNotBeNull(),
                () => landingPageAssign.CustomerCanOverride.Value.ShouldBeFalse(),
                () => landingPageAssign.Header.ShouldBe(NonEmptyText),
                () => landingPageAssign.Footer.ShouldBe(NonEmptyText),
                () => landingPageAssign.UpdatedUserID.ShouldBe(DummyUserID));

            landingPageAssignContentParameterValue.ShouldSatisfyAllConditions(
                () => landingPageAssignContentParameterValue.ShouldNotBeNull(),
                () => landingPageAssignContentParameterValue.Display.ShouldBe(NonEmptyText),
                () => landingPageAssignContentParameterValue.CreatedUserID.ShouldBe(DummyUserID),
                () => landingPageAssignContentParameterValue.LPAID = landingPageAssign.LPAID,
                () => landingPageAssignContentParameterValue.LPOID = LandingPageID);

            var previewButton = ReflectionHelper.GetFieldInfoFromInstanceByName(_channel, PreviewButtonName).GetValue(_channel) as Button;

            previewButton.ShouldSatisfyAllConditions(
                () => previewButton.ShouldNotBeNull(),
                () => previewButton.Enabled.ShouldBeTrue(),
                () => previewButton.Visible.ShouldBeTrue(),
                () => previewButton.CssClass.ShouldBe(ECNButtonMedium));

            var errorMessageLabel = ReflectionHelper.GetFieldInfoFromInstanceByName(_channel, "lblErrorMessage").GetValue(_channel) as Label;

            errorMessageLabel.ShouldSatisfyAllConditions(
                () => errorMessageLabel.ShouldNotBeNull(),
                () => errorMessageLabel.Text.ShouldBe(NonEmptyText));

            _response.Verify(x => x.Redirect("BaseChannelMain.aspx"), Times.Once());
        }