예제 #1
0
        public void ShouldCreateRequestWithDefaultPollingConfiguration()
        {
            // arrange
            var configurationProvider = Substitute.For <IConfigurationProvider>();
            var customAudienceId      = Guid.NewGuid().ToString();
            var configuration         = new Configuration
            {
                PollingConfiguration = new PollingConfiguration
                {
                    DefaultAttemptsCount = 4,
                    DefaultTimeInterval  = TimeSpan.FromSeconds(15.0)
                }
            };

            configurationProvider.GetConfiguration().Returns(configuration);

            // act
            var customAudienceRequestBuilder = new CustomAudienceRequestBuilder(configurationProvider, customAudienceId);

            var customAudienceRequest = customAudienceRequestBuilder.WithPolling().Create();

            // assert
            customAudienceRequest.Should().NotBeNull();
            customAudienceRequest.Configuration.Should().NotBeNull();
            customAudienceRequest.Configuration.CustomAudienceId.Should().Be(customAudienceId);
            customAudienceRequest.Configuration.Polling.Should().NotBeNull();
            customAudienceRequest.Configuration.Polling.Enabled.Should().BeTrue();
            customAudienceRequest.Configuration.Polling.Attempts.Should().Be(configuration.PollingConfiguration.DefaultAttemptsCount);
            customAudienceRequest.Configuration.Polling.Interval.Should().Be(configuration.PollingConfiguration.DefaultTimeInterval);
        }
예제 #2
0
        public void ShouldCreateRemoveUsersRequestWithPassedData()
        {
            // arrange
            var configurationProvider           = Substitute.For <IConfigurationProvider>();
            var updateUsersRequestConfiguration = new UpdateUsersInCustomAudienceRequestConfiguration
            {
                CustomAudienceId = Guid.NewGuid().ToString(),
                Users            =
                {
                    Data     = new[] { "*****@*****.**" },
                    DataType = UpdateUsersInCustomAudienceDataType.Emails
                }
            };


            // act
            var customAudienceRequestBuilder = new CustomAudienceRequestBuilder(configurationProvider, updateUsersRequestConfiguration.CustomAudienceId);

            var removeUsersRequest = customAudienceRequestBuilder
                                     .Users
                                     .Remove(users => users.Emails(updateUsersRequestConfiguration.Users.Data))
                                     .Create();

            // assert
            removeUsersRequest.Should().NotBeNull();
            removeUsersRequest.Configuration.Should().NotBeNull();
            removeUsersRequest.Configuration.ShouldBeEquivalentTo(updateUsersRequestConfiguration);
        }
예제 #3
0
        public void ShouldCreateRequestWithDisabledPolling()
        {
            // arrange
            var configurationProvider = Substitute.For <IConfigurationProvider>();
            var customAudienceId      = Guid.NewGuid().ToString();

            // act
            var customAudienceRequestBuilder = new CustomAudienceRequestBuilder(configurationProvider, customAudienceId);

            var customAudienceRequest = customAudienceRequestBuilder.Create();

            // assert
            customAudienceRequest.Should().NotBeNull();
            customAudienceRequest.Configuration.Should().NotBeNull();
            customAudienceRequest.Configuration.CustomAudienceId.Should().Be(customAudienceId);
            customAudienceRequest.Configuration.Polling.Should().NotBeNull();
            customAudienceRequest.Configuration.Polling.Enabled.Should().BeFalse();
        }
예제 #4
0
        public void ShouldCreateDeleteRequestWithPassedCustomAudienceId()
        {
            // arrange
            var configurationProvider      = Substitute.For <IConfigurationProvider>();
            var deleteRequestConfiguration = new CustomAudienceDeleteRequestConfiguration
            {
                CustomAudienceId = Guid.NewGuid().ToString()
            };

            // act
            var customAudienceRequestBuilder = new CustomAudienceRequestBuilder(configurationProvider, deleteRequestConfiguration.CustomAudienceId);

            var customAudienceDeleteRequest = customAudienceRequestBuilder.Delete().Create();

            // assert
            customAudienceDeleteRequest.Should().NotBeNull();
            customAudienceDeleteRequest.Configuration.Should().NotBeNull();
            customAudienceDeleteRequest.Configuration.ShouldBeEquivalentTo(deleteRequestConfiguration);
        }
예제 #5
0
        public void ShouldCreateRequestWithSpecifiedPollingConfiguration()
        {
            // arrange
            var configurationProvider = Substitute.For <IConfigurationProvider>();
            var customAudienceId      = Guid.NewGuid().ToString();
            var configuration         = new Configuration
            {
                PollingConfiguration = new PollingConfiguration
                {
                    DefaultAttemptsCount = 4,
                    DefaultTimeInterval  = TimeSpan.FromSeconds(15.0)
                }
            };

            var expectedPollingRequestConfiguration = new PollingRequestConfiguration
            {
                Enabled  = true,
                Attempts = 6,
                Interval = TimeSpan.FromSeconds(10.0)
            };

            configurationProvider.GetConfiguration().Returns(configuration);

            // act
            var customAudienceRequestBuilder = new CustomAudienceRequestBuilder(configurationProvider, customAudienceId);

            var customAudienceRequest = customAudienceRequestBuilder
                                        .WithPolling(polling => polling
                                                     .Interval(expectedPollingRequestConfiguration.Interval)
                                                     .Attempts(expectedPollingRequestConfiguration.Attempts))
                                        .Create();

            // assert
            customAudienceRequest.Should().NotBeNull();
            customAudienceRequest.Configuration.Should().NotBeNull();
            customAudienceRequest.Configuration.CustomAudienceId.Should().Be(customAudienceId);
            customAudienceRequest.Configuration.Polling.Should().NotBeNull();
            customAudienceRequest.Configuration.Polling.ShouldBeEquivalentTo(expectedPollingRequestConfiguration);
        }