public void If_a_messageForwarder_for_a_given_topic_does_not_exist_creates_it() { NotNullable<IMomRepository> momRepository = new NotNullable<IMomRepository>(Substitute.For<IMomRepository>()); NotNullable<IServiceEvents> mediator = new ServiceEvents(); NotNullable<IQuotaFactory> quotaFactory = new QuotaFactory(new HostConfiguration()); var sut = new MessageForwarderFactory(momRepository, mediator, quotaFactory); Assert.NotNull(sut.CreateForwarder(StringExtension.RandomString())); }
public void If_configuration_for_topic_exists_but_has_not_configured_any_quota_creates_a_transparentQuota() { var hostConfiguration = new HostConfiguration(); hostConfiguration.Topics.Add(new TopicConfiguration { TopicName = "testTopic" }); var sut = new QuotaFactory(hostConfiguration); Assert.IsType<TransparentQuota>(sut.CreateQuota("testTopic").Value); }
public void If_a_messageForwarder_for_a_given_topic_already_exist_returns_that_instance() { NotNullable<IMomRepository> momRepository = new NotNullable<IMomRepository>(Substitute.For<IMomRepository>()); NotNullable<IServiceEvents> mediator = new ServiceEvents(); NotNullable<IQuotaFactory> quotaFactory = new QuotaFactory(new HostConfiguration()); var sut = new MessageForwarderFactory(momRepository, mediator, quotaFactory); var topic = StringExtension.RandomString(); var forwarder = sut.CreateForwarder(topic); Assert.Same(sut.CreateForwarder(topic), forwarder); }
public void If_the_requested_topic_has_configured_a_quota_with_ElapsedMinutes_creates_an_ElapsedTimeQuota() { var hostConfiguration = new HostConfiguration(); hostConfiguration.Topics.Add(new TopicConfiguration { TopicName = "testTopic", Quota = new QuotaConfiguration { ElapsedMinutes = 2 } }); var sut = new QuotaFactory(hostConfiguration); Assert.IsType<ElapsedTimeQuota>(sut.CreateQuota("testTopic").Value); }
public void If_the_requested_topic_has_configured_a_quota_with_numberOfElements_creates_a_NumberOfElementsQuota() { var hostConfiguration = new HostConfiguration(); hostConfiguration.Topics.Add(new TopicConfiguration { TopicName = "testTopic", Quota = new QuotaConfiguration { NumberOfELements = 2 } }); var sut = new QuotaFactory(hostConfiguration); Assert.IsType<NumberOfElementsQuota>(sut.CreateQuota("testTopic").Value); }
public void If_the_requested_topic_has_configured_a_quota_with_TimeRange_creates_an_TimeRangeQuota() { var hostConfiguration = new HostConfiguration(); hostConfiguration.Topics.Add(new TopicConfiguration { TopicName = "testTopic", Quota = new QuotaConfiguration { TimeRange = new TimeRange { From = new Time() { Hour = new Hour(10), Minute = new Minute(3) }, To = new Time() { Hour = new Hour(10), Minute = new Minute(4) } } } }); var sut = new QuotaFactory(hostConfiguration); Assert.IsType<TimeRangeQuota>(sut.CreateQuota("testTopic").Value); }
public void If_configuration_is_null_creates_a_transparentQuota() { var hostConfiguration = new HostConfiguration(); var sut = new QuotaFactory(hostConfiguration); Assert.IsType<TransparentQuota>(sut.CreateQuota("testTopic").Value); }