public void ShouldCreateRequestWithPassedNewCustomAudienceConfigurationAndSpecifiedPollingConfiguration()
        {
            // arrange
            var configurationProvider = Substitute.For <IConfigurationProvider>();
            var newCustomAudience     = new CustomAudience
            {
                Name        = Guid.NewGuid().ToString(),
                Description = Guid.NewGuid().ToString()
            };

            var configuration = new Configuration
            {
                PollingConfiguration = new PollingConfiguration
                {
                    DefaultTimeInterval  = TimeSpan.FromSeconds(15.0),
                    DefaultAttemptsCount = 4
                }
            };

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

            configurationProvider.GetConfiguration().Returns(configuration);

            // act
            var newCustomAudienceRequestBuilder = new NewCustomAudienceRequestBuilder(configurationProvider, newCustomAudience);

            var newCustomAudienceRequest = newCustomAudienceRequestBuilder
                                           .WithPolling(polling => polling
                                                        .Interval(expectedPollingRequestConfiguration.Interval)
                                                        .Attempts(expectedPollingRequestConfiguration.Attempts))
                                           .Create();

            // assert
            newCustomAudienceRequest.Should().NotBeNull();
            newCustomAudienceRequest.Configuration.Should().NotBeNull();
            newCustomAudienceRequest.Configuration.CustomAudience.Should().NotBeNull();
            newCustomAudienceRequest.Configuration.CustomAudience.ShouldBeEquivalentTo(newCustomAudience);
            newCustomAudienceRequest.Configuration.Polling.Should().NotBeNull();
            newCustomAudienceRequest.Configuration.Polling.ShouldBeEquivalentTo(expectedPollingRequestConfiguration);
        }
        public void ShouldCreateRequestWithPassedNewCustomAudienceConfigurationAndDisabledPolling()
        {
            // arrange
            var configurationProvider = Substitute.For <IConfigurationProvider>();
            var newCustomAudience     = new CustomAudience
            {
                Name        = Guid.NewGuid().ToString(),
                Description = Guid.NewGuid().ToString()
            };

            // act
            var newCustomAudienceRequestBuilder = new NewCustomAudienceRequestBuilder(configurationProvider, newCustomAudience);

            var newCustomAudienceRequest = newCustomAudienceRequestBuilder.Create();

            // assert
            newCustomAudienceRequest.Should().NotBeNull();
            newCustomAudienceRequest.Configuration.Should().NotBeNull();
            newCustomAudienceRequest.Configuration.CustomAudience.Should().NotBeNull();
            newCustomAudienceRequest.Configuration.CustomAudience.ShouldBeEquivalentTo(newCustomAudience);
            newCustomAudienceRequest.Configuration.Polling.Should().NotBeNull();
            newCustomAudienceRequest.Configuration.Polling.Enabled.Should().BeFalse();
        }