public void ShouldCreateCampaignsRequestWithDefaultPollingConfiguration() { // arrange var configurationProvider = Substitute.For <IConfigurationProvider>(); var configuration = new Configuration { PollingConfiguration = new PollingConfiguration { DefaultTimeInterval = TimeSpan.FromSeconds(15.0), DefaultAttemptsCount = 4 } }; configurationProvider.GetConfiguration().Returns(configuration); // act var campaignsRequestBuilder = new CampaignsRequestBuilder(configurationProvider); var campaignsRequest = campaignsRequestBuilder.WithPolling().Create(); // assert campaignsRequest.Should().NotBeNull(); campaignsRequest.Configuration.Should().NotBeNull(); campaignsRequest.Configuration.Polling.Should().NotBeNull(); campaignsRequest.Configuration.Polling.Enabled.Should().BeTrue(); campaignsRequest.Configuration.Polling.Attempts.Should().Be(configuration.PollingConfiguration.DefaultAttemptsCount); campaignsRequest.Configuration.Polling.Interval.Should().Be(configuration.PollingConfiguration.DefaultTimeInterval); }
public void ShouldCreateCampaignsRequestWithSpecifiedPollingConfiguration() { // arrange var configurationProvider = Substitute.For <IConfigurationProvider>(); 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 campaignsRequestBuilder = new CampaignsRequestBuilder(configurationProvider); var campaignsRequest = campaignsRequestBuilder .WithPolling(polling => polling .Interval(expectedPollingRequestConfiguration.Interval) .Attempts(expectedPollingRequestConfiguration.Attempts)) .Create(); // assert campaignsRequest.Should().NotBeNull(); campaignsRequest.Configuration.Should().NotBeNull(); campaignsRequest.Configuration.Polling.ShouldBeEquivalentTo(expectedPollingRequestConfiguration); }