Example #1
0
 public static EgressApiConfiguration With(
     this EgressApiConfiguration configuration,
     Action <EgressApiConfiguration> updater)
 {
     updater(configuration);
     return(configuration);
 }
        public void when_pipe_fitter_set_it_should_be_set_in_configuration()
        {
            var configuration = new EgressApiConfiguration();
            var sut           = new EgressApiConfigurator(configuration);

            sut.WithPipeFitter <StabPipeFitter>().Should().BeSameAs(sut);
            configuration.PipeFitterType.Should().Be <StabPipeFitter>();
        }
        public void when_payload_type_set_it_should_be_set_in_configuration()
        {
            var configuration = new EgressApiConfiguration();
            var sut           = new EgressApiConfigurator(configuration);

            sut.WithMessagePayload <string>().Should().BeSameAs(sut);
            configuration.MessagePayloadType.Should().Be <string>();
        }
        public void when_message_type_registry_set_it_should_be_set_in_configuration()
        {
            var configuration = new EgressApiConfiguration();
            var sut           = new EgressApiConfigurator(configuration);

            sut.WithMessageTypesRegistry <MessageTypesRegistry1>().Should().BeSameAs(sut);
            configuration.MessageTypesRegistryType.Should().Be <MessageTypesRegistry1>();
        }
        public void when_key_type_set_it_should_be_set_in_configuration()
        {
            var configuration = new EgressApiConfiguration();
            var sut           = new EgressApiConfigurator(configuration);

            sut.WithMessageKey <int>().Should().BeSameAs(sut);
            configuration.MessageKeyType.Should().Be <int>();
        }
        public void when_id_set_it_should_be_set_in_configuration()
        {
            var          configuration = new EgressApiConfiguration();
            var          sut           = new EgressApiConfigurator(configuration);
            const string expected      = "id";

            sut.WithId(expected).Should().BeSameAs(sut);
            configuration.Id.Should().Be(expected);
        }
        public void when_same_api_added_second_time_it_should_fail()
        {
            var    configuration = new BrokerEgressConfiguration();
            var    api           = new EgressApiConfiguration();
            Action sut           = () => configuration.AddApi(api);

            sut.Should().NotThrow();
            sut.Should().ThrowExactly <PoezdConfigurationException>();
        }
        public void when_pipe_fitter_set_more_than_once_it_should_fail()
        {
            var    configuration = new EgressApiConfiguration();
            var    configurator  = new EgressApiConfigurator(configuration);
            Action sut           = () => configurator.WithPipeFitter <StabPipeFitter>();

            sut.Should().NotThrow();
            configuration.PipeFitterType.Should().Be <StabPipeFitter>();
            EnsureSecondCallOfConfigurationMethodFails(sut);
        }
        public void when_payload_type_set_more_than_once_it_should_fail()
        {
            var    configuration = new EgressApiConfiguration();
            var    configurator  = new EgressApiConfigurator(configuration);
            Action sut           = () => configurator.WithMessagePayload <string>();

            sut.Should().NotThrow();
            configuration.MessagePayloadType.Should().Be <string>();
            EnsureSecondCallOfConfigurationMethodFails(sut);
        }
        public void when_message_type_registry_set_more_than_once_it_should_fail()
        {
            var    configuration = new EgressApiConfiguration();
            var    configurator  = new EgressApiConfigurator(configuration);
            Action sut           = () => configurator.WithMessageTypesRegistry <MessageTypesRegistry1>();

            sut.Should().NotThrow();
            configuration.MessageTypesRegistryType.Should().Be <MessageTypesRegistry1>();
            EnsureSecondCallOfConfigurationMethodFails(sut);
        }
Example #11
0
        /// <summary>
        /// Constructs a new instance of egress API.
        /// </summary>
        /// <param name="configuration">
        /// The egress API configuration.
        /// </param>
        /// <param name="serviceProvider">
        /// Service provider.
        /// </param>
        /// <exception cref="ArgumentNullException">
        /// On of arguments is not specified.
        /// </exception>
        public EgressApi(EgressApiConfiguration configuration, IDiContainerAdapter serviceProvider)
        {
            Configuration = configuration ?? throw new ArgumentNullException(nameof(configuration));
            if (serviceProvider == null)
            {
                throw new ArgumentNullException(nameof(serviceProvider));
            }

            MessageTypesRegistry = GetMessageTypesRegistry(serviceProvider);
            PipeFitter           = GetPipeFitter(serviceProvider);
        }
        public void when_id_set_more_than_once_it_should_fail()
        {
            var          configuration = new EgressApiConfiguration();
            var          configurator  = new EgressApiConfigurator(configuration);
            const string expected      = "id";
            Action       sut           = () => configurator.WithId(expected);

            sut.Should().NotThrow();
            configuration.Id.Should().Be(expected);
            EnsureSecondCallOfConfigurationMethodFails(sut);
        }
        public void when_api_with_same_id_added_it_should_fail()
        {
            var configuration = new BrokerEgressConfiguration();

            const string sameId = "same id";
            var          api1   = new EgressApiConfiguration {
                Id = sameId
            };
            Action sut1 = () => configuration.AddApi(api1);

            sut1.Should().NotThrow();

            var api2 = new EgressApiConfiguration {
                Id = sameId
            };
            Action sut2 = () => configuration.AddApi(api2);

            sut2.Should().ThrowExactly <PoezdConfigurationException>();
        }