public void when_get_consumer_with_invalid_arguments_it_should_fail() { var registry = new DefaultConsumerRegistry(); Action sut = () => registry.Get <int, string>(api: null); sut.Should().ThrowExactly <ArgumentNullException>().Where(exception => exception.ParamName.Equals("api")); }
public void when_get_consumer_for_not_registered_api_it_should_fail() { var registry = new DefaultConsumerRegistry(); Action sut = () => registry.Get <int, string>(Mock.Of <IIngressApi>()); sut.Should().ThrowExactly <ArgumentException>().Where( exception => exception.ParamName.Equals("api"), "it's not possible to get consumer for not registered API"); }
public void when_add_consumer_with_valid_arguments_it_should_be_possible_to_get_it_back() { var sut = new DefaultConsumerRegistry(); var expectedConsumer = Mock.Of <IApiConsumer <int, string> >(); var api = Mock.Of <IIngressApi>(); sut.Add(api, expectedConsumer); sut.Get <int, string>(api).Should().BeSameAs(expectedConsumer, "the same consumer should be returned"); }
public void when_add_consumer_for_same_api_it_should_fail() { var registry = new DefaultConsumerRegistry(); var api = Mock.Of <IIngressApi>(); Action sut = () => registry.Add(api, Mock.Of <IApiConsumer <int, string> >()); sut.Should().NotThrow("the first time it should be added"); sut.Should().ThrowExactly <PoezdConfigurationException>().Where( exception => exception.Message.Contains("already registered"), "it should not be possible to add a consumer for same API twice"); }
public void when_add_consumer_with_invalid_arguments_it_should_fail() { var registry = new DefaultConsumerRegistry(); var api = Mock.Of <IIngressApi>(); var consumer = Mock.Of <IApiConsumer <int, string> >(); Action sut = () => registry.Add(api, consumer); api = null; sut.Should().ThrowExactly <ArgumentNullException>().Where(exception => exception.ParamName.Equals("api")); api = Mock.Of <IIngressApi>(); consumer = null; sut.Should().ThrowExactly <ArgumentNullException>().Where(exception => exception.ParamName.Equals("consumer")); }
public void when_dispose_it_should_dispose_all_registered_consumers() { var disposed = 0; var sut = new DefaultConsumerRegistry(); var consumer1Mock = new Mock <IApiConsumer <int, string> >(); consumer1Mock.Setup(consumer => consumer.Dispose()).Callback(() => disposed++); var consumer2Mock = new Mock <IApiConsumer <int, string> >(); consumer2Mock.Setup(consumer => consumer.Dispose()).Callback(() => disposed++); sut.Add(Mock.Of <IIngressApi>(), consumer1Mock.Object); sut.Add(Mock.Of <IIngressApi>(), consumer2Mock.Object); sut.Dispose(); disposed.Should().Be(expected: 2, "all registered consumers should be disposed"); }