예제 #1
0
 public void EndVisit_ShouldEndSession([Substitute] ControllerContext ctx, [Frozen] IDemoStateService demoState, [Greedy] DemoController sut)
 {
     demoState.IsDemoEnabled.Returns(true);
     sut.ControllerContext = ctx;
     sut.EndVisit();
     ctx.HttpContext.Session.Received(1).Abandon();
 }
예제 #2
0
 public DemoController(IDemoStateService demoStateService, IExperienceDataFactory experienceDataFactory)
 {
     this.DemoStateService      = demoStateService;
     this.ExperienceDataFactory = experienceDataFactory;
 }
예제 #3
0
 public void DemoContent_RenderingContextNotDerivedFromSpecificTemplate_ShouldThrowException(Db db, [Substitute] Sitecore.Mvc.Presentation.PageContext pageContext, [Frozen] IDemoStateService demoState, [Greedy] DemoController sut, Item ctxItem)
 {
     pageContext.Database.Returns(db.Database);
     Sitecore.Mvc.Common.ContextService.Get().Push(pageContext);
     demoState.IsDemoEnabled.Returns(true);
     using (RenderingContext.EnterContext(new Rendering(), ctxItem))
     {
         sut.Invoking(x => x.DemoContent()).Should().Throw <InvalidDataSourceItemException>();
     }
 }
예제 #4
0
 public void EndVisit_ShouldReturnRedirectToRoot([Substitute] ControllerContext ctx, [Frozen] IDemoStateService demoState, [Greedy] DemoController sut)
 {
     demoState.IsDemoEnabled.Returns(true);
     sut.ControllerContext = ctx;
     sut.EndVisit().As <HttpStatusCodeResult>().StatusCode.Should().Be((int)HttpStatusCode.OK);
 }
예제 #5
0
 public void DemoContent_RenderingContextItemInitialized_ShouldReturnDemoContentView(Db db, [Substitute] Sitecore.Mvc.Presentation.PageContext pageContext, [Frozen] IDemoStateService demoState, [Greedy] DemoController sut, [Content] DemoContentItem item)
 {
     pageContext.Database.Returns(db.Database);
     Sitecore.Mvc.Common.ContextService.Get().Push(pageContext);
     demoState.IsDemoEnabled.Returns(true);
     using (RenderingContext.EnterContext(new Rendering(), db.GetItem(item.ID)))
     {
         sut.DemoContent().As <ViewResult>().Model.Should().BeOfType <DemoContent>();
     }
 }
예제 #6
0
        public void ExperienceData_InitializedTrackerAndPreviewMode_ReturnEmptyResult(IKeyBehaviorCache keyBehaviorCache, Session session, CurrentInteraction currentInteraction, ITracker tracker, Contact contact, [Frozen] IProfileProvider profileProvider, [Frozen] IDemoStateService demoState, [Greedy] DemoController sut)
        {
            demoState.IsDemoEnabled.Returns(true);
            tracker.Interaction.Returns(currentInteraction);
            tracker.Session.Returns(session);
            var attachments = new Dictionary <string, object>
            {
                ["KeyBehaviorCache"] = new Analytics.Tracking.KeyBehaviorCache(keyBehaviorCache)
            };

            contact.Attachments.Returns(attachments);
            tracker.Contact.Returns(contact);

            var fakeSite = new FakeSiteContext(new StringDictionary
            {
                { "enablePreview", "true" },
                { "masterDatabase", "master" }
            }) as SiteContext;

            using (new SiteContextSwitcher(fakeSite))
            {
                Sitecore.Context.Site.SetDisplayMode(DisplayMode.Preview, DisplayModeDuration.Remember);
                using (new TrackerSwitcher(tracker))
                {
                    sut.ExperienceData().Should().BeOfType <EmptyResult>();
                }
            }
        }
예제 #7
0
        public void ExperienceData_InitializedTrackerAndNormalMode_ReturnExperienceData(IKeyBehaviorCache keyBehaviorCache, Session session, CurrentInteraction currentInteraction, ITracker tracker, Contact contact, [Frozen] IProfileProvider profileProvider, [Frozen] IDemoStateService demoState, [Frozen] IExperienceDataFactory dataFactory, [Greedy] DemoController sut)
        {
            demoState.IsDemoEnabled.Returns(true);
            dataFactory.Get().Returns(new ExperienceData());
            tracker.Interaction.Returns(currentInteraction);
            tracker.Session.Returns(session);
            var attachments = new Dictionary <string, object>
            {
                ["KeyBehaviorCache"] = new Analytics.Tracking.KeyBehaviorCache(keyBehaviorCache)
            };

            contact.Attachments.Returns(attachments);
            tracker.Contact.Returns(contact);

            var fakeSite = new FakeSiteContext(new StringDictionary
            {
                { "displayMode", "normal" }
            }) as SiteContext;

            using (new SiteContextSwitcher(fakeSite))
            {
                using (new TrackerSwitcher(tracker))
                {
                    var result = sut.ExperienceData();
                    result.Should().BeOfType <ViewResult>().Which.Model.Should().BeOfType <ExperienceData>();
                }
            }
        }
예제 #8
0
 public void ExperienceData_NullInteraction_ReturnNull([Frozen] IDemoStateService demoState, [Greedy] DemoController sut, TrackerSwitcher trackerSwitcher)
 {
     demoState.IsDemoEnabled.Returns(true);
     sut.ExperienceData().Should().BeNull();
 }
예제 #9
0
 public FakeTrackerData(IDemoStateService demoStateService)
 {
     this.DemoStateService = demoStateService;
 }