public void when_get_producer_for_null_as_api_it_should_fail() { var registry = new DefaultProducerRegistry(); Action sut = () => registry.Get(api: null); sut.Should().ThrowExactly <ArgumentNullException>(); }
public void when_get_not_registered_producer_it_should_fail() { var registry = new DefaultProducerRegistry(); Action sut = () => registry.Get(Mock.Of <IEgressApi>()); sut.Should().ThrowExactly <ArgumentException>().Where(exception => exception.ParamName.Equals("api"), "API is required"); }
public void when_add_null_as_producer_it_should_fail() { var registry = new DefaultProducerRegistry(); Action sut = () => registry.Add(Mock.Of <IEgressApi>(), producer: null); sut.Should().ThrowExactly <ArgumentNullException>().Where(exception => exception.ParamName.Equals("producer")); }
public void when_add_producer_for_not_specified_api_it_should_fail() { var registry = new DefaultProducerRegistry(); Action sut = () => registry.Add(api: null, Mock.Of <IApiProducer>()); sut.Should().ThrowExactly <ArgumentNullException>().Where(exception => exception.ParamName.Equals("api")); }
public void when_add_producer_for_already_registered_api_it_should_fail() { var registry = new DefaultProducerRegistry(); var api = Mock.Of <IEgressApi>(); Action sut = () => registry.Add(api, Mock.Of <IApiProducer>()); sut.Should().NotThrow("producer for this API is not registered yet"); sut.Should().ThrowExactly <PoezdConfigurationException>("producer for this API is registered already"); }
public void when_get_producer_for_unregistered_api_it_should_fail() { var registry = new DefaultProducerRegistry(); var apiMock = new Mock <IEgressApi>(); apiMock.SetupGet(api => api.Id).Returns("id-1"); Action sut = () => registry.Get(Mock.Of <IEgressApi>()); sut.Should().ThrowExactly <ArgumentException>() .Where(exception => exception.Message.Contains("There is no registered producers for API with ID"), "should fail"); }
public void when_add_producers_for_different_apis_it_should_successfully_register_them() { var sut = new DefaultProducerRegistry(); var api1 = Mock.Of <IEgressApi>(); var producer1 = Mock.Of <IApiProducer>(); sut.Add(api1, producer1); var api2 = Mock.Of <IEgressApi>(); var producer2 = Mock.Of <IApiProducer>(); sut.Add(api2, producer2); sut.Get(api1).Should().Be(producer1, "this producer registered for this API"); sut.Get(api2).Should().Be(producer2, "this producer registered for this API"); }
public void when_dispose_it_should_dispose_all_producers() { var sut = new DefaultProducerRegistry(); var api1 = Mock.Of <IEgressApi>(); var producer1 = new Mock <IApiProducer>(); var disposed = 0; producer1.Setup(producer => producer.Dispose()).Callback(() => disposed++); sut.Add(api1, producer1.Object); var api2 = Mock.Of <IEgressApi>(); var producer2 = new Mock <IApiProducer>(); producer2.Setup(producer => producer.Dispose()).Callback(() => disposed++); sut.Add(api2, producer2.Object); var api3 = Mock.Of <IEgressApi>(); var producer3 = new Mock <IApiProducer>(); producer3.Setup(producer => producer.Dispose()).Callback(() => disposed++); sut.Add(api3, producer3.Object); sut.Dispose(); disposed.Should().Be(expected: 3, "all producers should be disposed"); }