public void CountryPersonalisationGroupCriteria_MatchesVisitor_WithValidDefinitionWithEmptyCountryLists_ReturnsFalse()
        {
            // Arrange
            var mockIpProvider = MockIpProvider();
            var mockCountryGeoLocationProvider = MockGeoLocationProvider();
            var criteria   = new CountryPersonalisationGroupCriteria(mockIpProvider.Object, mockCountryGeoLocationProvider.Object);
            var definition = "{ \"match\": \"IsLocatedIn\", \"codes\": [] }";

            // Act
            var result = criteria.MatchesVisitor(definition);

            // Assert
            Assert.IsFalse(result);
        }
        public void CountryPersonalisationGroupCriteria_MatchesVisitor_WithValidDefinitionWithMatchingCountryListAndNotInCheck_ReturnsFalse()
        {
            // Arrange
            var mockIpProvider = MockIpProvider();
            var mockCountryGeoLocationProvider = MockGeoLocationProvider();
            var criteria   = new CountryPersonalisationGroupCriteria(mockIpProvider.Object, mockCountryGeoLocationProvider.Object);
            var definition = string.Format(DefinitionFormat, "IsNotLocatedIn", "GB", "IT");

            // Act
            var result = criteria.MatchesVisitor(definition);

            // Assert
            Assert.IsFalse(result);
        }
        public void CountryPersonalisationGroupCriteria_MatchesVisitor_WithValidDefinitionForCouldNotBeLocatedWhenCannotLocate_ReturnsTrue()
        {
            // Arrange
            var mockIpProvider = MockIpProvider();
            var mockCountryGeoLocationProvider = MockGeoLocationProvider(canGeolocate: false);
            var criteria   = new CountryPersonalisationGroupCriteria(mockIpProvider.Object, mockCountryGeoLocationProvider.Object);
            var definition = "{ \"match\": \"CouldNotBeLocated\", \"codes\": [] }";

            // Act
            var result = criteria.MatchesVisitor(definition);

            // Assert
            Assert.IsTrue(result);
        }
コード例 #4
0
        public void CountryPersonalisationGroupCriteria_UsingCloudFlareCdnHeaderCountryCodeProvider_MatchesVisitor_WithValidDefinitionForCouldNotBeLocatedWhenCanLocate_ReturnsFalse()
        {
            // Arrange
            var mockRequestHeadersProvider = MockRequestHeadersProvider();
            var countryCodeProvider        = new CdnHeaderCountryCodeProvider(mockRequestHeadersProvider.Object);
            var criteria   = new CountryPersonalisationGroupCriteria(countryCodeProvider);
            var definition = "{ \"match\": \"CouldNotBeLocated\", \"codes\": [] }";

            // Act
            var result = criteria.MatchesVisitor(definition);

            // Assert
            Assert.IsFalse(result);
        }
コード例 #5
0
        public void CountryPersonalisationGroupCriteria_UsingCloudFlareCdnHeaderCountryCodeProvider_MatchesVisitor_WithValidDefinitionWithMatchingCountryListAndNotInCheck_ReturnsFalse()
        {
            // Arrange
            var mockRequestHeadersProvider = MockRequestHeadersProvider();
            var countryCodeProvider        = new CdnHeaderCountryCodeProvider(mockRequestHeadersProvider.Object);
            var criteria   = new CountryPersonalisationGroupCriteria(countryCodeProvider);
            var definition = string.Format(DefinitionFormat, "IsNotLocatedIn", "GB", "IT");

            // Act
            var result = criteria.MatchesVisitor(definition);

            // Assert
            Assert.IsFalse(result);
        }
コード例 #6
0
        public void CountryPersonalisationGroupCriteria_UsingMockedMaxMindDatabaseCountryCodeProvider_MatchesVisitor_WithValidDefinitionWithDifferentCountryListAndNotInCheck_ReturnsTrue()
        {
            // Arrange
            var mockIpProvider = MockIpProvider();
            var mockCountryGeoLocationProvider = MockGeoLocationProvider();
            var countryCodeProvider            = new MaxMindCountryCodeFromIpProvider(mockIpProvider.Object, mockCountryGeoLocationProvider.Object);
            var criteria   = new CountryPersonalisationGroupCriteria(countryCodeProvider);
            var definition = string.Format(DefinitionFormat, "IsNotLocatedIn", "ES", "IT");

            // Act
            var result = criteria.MatchesVisitor(definition);

            // Assert
            Assert.IsTrue(result);
        }
コード例 #7
0
        public void CountryPersonalisationGroupCriteria_UsingMockedMaxMindDatabaseCountryCodeProvider_MatchesVisitor_WithValidDefinitionForCouldNotBeLocatedWhenCanLocate_ReturnsFalse()
        {
            // Arrange
            var mockIpProvider = MockIpProvider();
            var mockCountryGeoLocationProvider = MockGeoLocationProvider();
            var countryCodeProvider            = new MaxMindCountryCodeFromIpProvider(mockIpProvider.Object, mockCountryGeoLocationProvider.Object);
            var criteria   = new CountryPersonalisationGroupCriteria(countryCodeProvider);
            var definition = "{ \"match\": \"CouldNotBeLocated\", \"codes\": [] }";

            // Act
            var result = criteria.MatchesVisitor(definition);

            // Assert
            Assert.IsFalse(result);
        }
        public void CountryPersonalisationGroupCriteria_UsingCloudFlareCdnHeaderCountryCodeProvider_MatchesVisitor_WithValidDefinitionForCouldNotBeLocatedWhenCannotLocateAsEmptyHeader_ReturnsTrue()
        {
            // Arrange
            var config = Options.Create(new PersonalisationGroupsConfig());
            var mockRequestHeadersProvider = MockRequestHeadersProvider(withValue: false);
            var countryCodeProvider        = new CdnHeaderCountryCodeProvider(config, mockRequestHeadersProvider.Object);
            var criteria   = new CountryPersonalisationGroupCriteria(countryCodeProvider);
            var definition = "{ \"match\": \"CouldNotBeLocated\", \"codes\": [] }";

            // Act
            var result = criteria.MatchesVisitor(definition);

            // Assert
            Assert.IsTrue(result);
        }
        public void CountryPersonalisationGroupCriteria_UsingCloudFlareCdnHeaderCountryCodeProvider_MatchesVisitor_WithValidDefinitionWithDifferentCountryListAndNotInCheck_ReturnsTrue()
        {
            // Arrange
            var config = Options.Create(new PersonalisationGroupsConfig());
            var mockRequestHeadersProvider = MockRequestHeadersProvider();
            var countryCodeProvider        = new CdnHeaderCountryCodeProvider(config, mockRequestHeadersProvider.Object);
            var criteria   = new CountryPersonalisationGroupCriteria(countryCodeProvider);
            var definition = string.Format(DefinitionFormat, "IsNotLocatedIn", "ES", "IT");

            // Act
            var result = criteria.MatchesVisitor(definition);

            // Assert
            Assert.IsTrue(result);
        }
        public void CountryPersonalisationGroupCriteria_UsingCloudFlareCdnHeaderCountryCodeProvider_MatchesVisitor_WithValidDefinitionWithEmptyCountryLists_ReturnsFalse()
        {
            // Arrange
            var config = Options.Create(new PersonalisationGroupsConfig());
            var mockRequestHeadersProvider = MockRequestHeadersProvider();
            var countryCodeProvider        = new CdnHeaderCountryCodeProvider(config, mockRequestHeadersProvider.Object);
            var criteria   = new CountryPersonalisationGroupCriteria(countryCodeProvider);
            var definition = "{ \"match\": \"IsLocatedIn\", \"codes\": [] }";

            // Act
            var result = criteria.MatchesVisitor(definition);

            // Assert
            Assert.IsFalse(result);
        }