예제 #1
0
    public ExperienceData(IContactProfileProvider contactProfileProvider, IProfileProvider profileProvider)
    {
      this.contactProfileProvider = contactProfileProvider;
      this.profileProvider = profileProvider;

      Visits = new VisitsRepository(contactProfileProvider).Get();
      PersonalInfo = new PersonalInfoRepository(contactProfileProvider).Get();
      OnsiteBehavior = new OnsiteBehaviorRepository(profileProvider).Get();
      Referral = new ReferralRepository().Get();
    }
예제 #2
0
    public void Get_Value_ReturnsEngagementValue(int value, ITracker tracker, [Frozen]IContactProfileProvider contactProfileProvider, VisitsRepository visitsRepository)
    {
      //Arrange
      this.InitTracker(tracker);
      contactProfileProvider.Contact.Returns(x => tracker.Contact);
      tracker.Contact.System.Value.Returns(value);

      using (new TrackerSwitcher(tracker))
      {
        //Act
        var visits = visitsRepository.Get();
        //Assert      
        visits.EngagementValue.Should().Be(value);
      }
    }
예제 #3
0
    public void Get_SeveralVisits_ReturnsTotalVisitsCount(int visitCount, ITracker tracker, [Frozen]IContactProfileProvider contactProfileProvider, VisitsRepository visitsRepository)
    {
      //Arrange
      this.InitTracker(tracker);
      contactProfileProvider.Contact.Returns(x => tracker.Contact);
      tracker.Contact.System.VisitCount.Returns(visitCount);

      using (new TrackerSwitcher(tracker))
      {
        //Act
        var visits = visitsRepository.Get();
        //Assert      
        visits.TotalVisits.Should().Be(visitCount);
      }
    }
예제 #4
0
    public void Get_PageViews_ReturnReversedPages(ITracker tracker, [Frozen]IContactProfileProvider contactProfileProvider, VisitsRepository visitsRepository)
    {
      //Arrange
      this.InitTracker(tracker);
      var pages = new List<ICurrentPageContext>() { this.GeneratePage(path:"/0"), this.GeneratePage(path: "/1"), this.GeneratePage(path: "/2") };
      tracker.Interaction.GetPages().Returns(pages);
      contactProfileProvider.Contact.Returns(x => tracker.Contact); ;

      using (new TrackerSwitcher(tracker))
      {
        //Act
        var visits = visitsRepository.Get();
        //Assert 
        visits.PageViews.Select(x=>x.Path).Should().BeEquivalentTo(new []{"2", "1", "0"});
      }
    }
예제 #5
0
    public void Get_PageViews_DoNotReturnCancelledPages(ITracker tracker, [Frozen]IContactProfileProvider contactProfileProvider, VisitsRepository visitsRepository)
    {
      //Arrange
      this.InitTracker(tracker);
      var pages = new List<ICurrentPageContext>(){ this.GeneratePage(false),this.GeneratePage(true),this.GeneratePage(false) };
      tracker.Interaction.GetPages().Returns(pages);
      contactProfileProvider.Contact.Returns(x => tracker.Contact); ;

      using (new TrackerSwitcher(tracker))
      {
        //Act
        var visits = visitsRepository.Get();
        //Assert 
        visits.PageViews.Should().HaveCount(2);
        visits.TotalPageViews.Should().Be(2);
      }
    }
예제 #6
0
    public void Get_PageViews_ReturnOnly10Pages(ITracker tracker, [Frozen]IContactProfileProvider contactProfileProvider, VisitsRepository visitsRepository)
    {
      //Arrange
      this.InitTracker(tracker);
      var pages = Enumerable.Repeat(this.GeneratePage(), 15);
      tracker.Interaction.GetPages().Returns(pages);
      contactProfileProvider.Contact.Returns(x => tracker.Contact); ;

      using (new TrackerSwitcher(tracker))
      {
        //Act
        var visits = visitsRepository.Get();
        //Assert 
        visits.PageViews.Should().HaveCount(10);
        visits.TotalPageViews.Should().Be(15);
      }
    }