Пример #1
0
        public IEnumerable <Profile> GetProfiles(ProfilingTypes profiling)
        {
            if (!Tracker.IsActive)
            {
                return(Enumerable.Empty <Profile>());
            }

            return(profileProvider.GetSiteProfiles().Where(p => profileProvider.HasMatchingPattern(p, profiling)).Select(x => new Profile {
                Name = x.NameField, PatternMatches = profileProvider.GetPatternsWithGravityShare(x, profiling)
            }));
        }
Пример #2
0
        public void LoadProfiles_SetProfiles_ShouldReturnExistentProfilesEnumerable([Content] Item item, PatternMatch patternMatch, ITracker tracker, IProfileProvider provider)
        {
            //arrange
            tracker.IsActive.Returns(true);

            var profileItem = item.Add("profile", new TemplateID(ProfileItem.TemplateID));

            using (new EditContext(profileItem))
            {
                profileItem.Fields[ProfileItem.FieldIDs.Type].Value      = "Average";
                profileItem.Fields[ProfileItem.FieldIDs.NameField].Value = profileItem.Name;
            }

            provider.GetSiteProfiles().Returns(new[] { new ProfileItem(profileItem) });
            provider.HasMatchingPattern(null).ReturnsForAnyArgs(true);
            provider.GetPatternsWithGravityShare(null).ReturnsForAnyArgs(new [] { patternMatch });


            var fakeSiteContext = new FakeSiteContext("fake")
            {
                Database = item.Database
            };

            using (new SiteContextSwitcher(fakeSiteContext))
            {
                using (new TrackerSwitcher(tracker))
                {
                    var model = new VisitInformation(provider);
                    //act
                    var profiles = model.LoadProfiles().ToArray();

                    //assert
                    profiles.Count().Should().Be(1);
                    profiles.First().Name.Should().Be(profileItem.Name);
                    profiles.First().PatternMatches.Single().Should().Be(patternMatch);
                }
            }
        }
Пример #3
0
        public void LoadProfiles_NoMatchingProfile_ShouldReturnEmptyProfilesEnumerable([Content] Item item, ITracker tracker, IProfileProvider provider)
        {
            //arrange
            tracker.IsActive.Returns(true);
            var profileItem = item.Add("profile", new TemplateID(ProfileItem.TemplateID));

            provider.GetSiteProfiles().Returns(new[]
            {
                new ProfileItem(profileItem)
            });
            provider.HasMatchingPattern(null).ReturnsForAnyArgs(false);


            using (new TrackerSwitcher(tracker))
            {
                var model = new VisitInformation(provider);
                //act
                var profiles = model.LoadProfiles().ToArray();

                //assert
                profiles.Length.Should().Be(0);
            }
        }
Пример #4
0
    public void LoadProfiles_SetProfiles_ShouldReturnExistentProfilesEnumerable([Content] Item item, PatternMatch patternMatch, ITracker tracker, IProfileProvider provider)
    {
      //arrange
      tracker.IsActive.Returns(true);

      var profileItem = item.Add("profile", new TemplateID(ProfileItem.TemplateID));
      using (new EditContext(profileItem))
      {
        profileItem.Fields[ProfileItem.FieldIDs.Type].Value = "Average";
        profileItem.Fields[ProfileItem.FieldIDs.NameField].Value = profileItem.Name;
      }

      provider.GetSiteProfiles().Returns(new[]{new ProfileItem(profileItem)});
      provider.HasMatchingPattern(null).ReturnsForAnyArgs(true);
      provider.GetPatternsWithGravityShare(null).ReturnsForAnyArgs(new [] { patternMatch });


      var fakeSiteContext = new FakeSiteContext("fake")
      {
        Database = item.Database
      };

      using (new SiteContextSwitcher(fakeSiteContext))
      {
        using (new TrackerSwitcher(tracker))
        {
          var model = new VisitInformation(provider);
          //act
          var profiles = model.LoadProfiles().ToArray();

          //assert
          profiles.Count().Should().Be(1);
          profiles.First().Name.Should().Be(profileItem.Name);
          profiles.First().PatternMatches.Single().Should().Be(patternMatch);
        }
      }
    }
Пример #5
0
    public void LoadProfiles_NoMatchingProfile_ShouldReturnEmptyProfilesEnumerable([Content] Item item, ITracker tracker, IProfileProvider provider)
    {
      //arrange
      tracker.IsActive.Returns(true);
      var profileItem = item.Add("profile", new TemplateID(ProfileItem.TemplateID));
      provider.GetSiteProfiles().Returns(new[]
      {
        new ProfileItem(profileItem)
      });
      provider.HasMatchingPattern(null).ReturnsForAnyArgs(false);


      using (new TrackerSwitcher(tracker))
      {
        var model = new VisitInformation(provider);
        //act
        var profiles = model.LoadProfiles().ToArray();

        //assert
        profiles.Length.Should().Be(0);
      }
    }