コード例 #1
0
        public Task<EndpointConfiguration> GetConfiguration(RunDescriptor runDescriptor, EndpointCustomizationConfiguration endpointConfiguration, IConfigurationSource configSource, Action<EndpointConfiguration> configurationBuilderCustomization)
        {
            var types = GetTypesScopedByTestClass(endpointConfiguration);

            typesToInclude.AddRange(types);

            var builder = new EndpointConfiguration(endpointConfiguration.EndpointName);

            builder.TypesToIncludeInScan(typesToInclude);
            builder.CustomConfigurationSource(configSource);
            builder.EnableInstallers();

            builder.DisableFeature<TimeoutManager>();
            builder.Recoverability()
                .Delayed(delayed => delayed.NumberOfRetries(0))
                .Immediate(immediate => immediate.NumberOfRetries(0));

            builder.RegisterComponents(r => { RegisterInheritanceHierarchyOfContextOnContainer(runDescriptor, r); });

            builder.UsePersistence<InMemoryPersistence>();

            configurationBuilderCustomization(builder);

            return Task.FromResult(builder);
        }
        public Task <EndpointConfiguration> GetConfiguration(
            RunDescriptor runDescriptor,
            EndpointCustomizationConfiguration endpointConfiguration,
            Action <EndpointConfiguration> configurationBuilderCustomization)
        {
            var configuration = new EndpointConfiguration(endpointConfiguration.EndpointName);

            configuration.TypesToIncludeInScan(endpointConfiguration.GetTypesScopedByTestClass());
            configuration.EnableInstallers();

            configuration.DisableFeature <TimeoutManager>();

            configuration.RegisterComponents(c => c
                                             .RegisterSingleton(runDescriptor.ScenarioContext.GetType(), runDescriptor.ScenarioContext));

            var recoverability = configuration.Recoverability();

            recoverability.Delayed(delayed => delayed.NumberOfRetries(0));
            recoverability.Immediate(immediate => immediate.NumberOfRetries(0));
            configuration.SendFailedMessagesTo("error");

            var transport = configuration.UseTransport <AzureStorageQueueTransport>();

            transport.ConnectionString(Environment.GetEnvironmentVariable(StorageQueueTriggeredEndpointConfiguration.DefaultStorageConnectionString));

            configuration.UseSerialization <NewtonsoftSerializer>();

            configurationBuilderCustomization(configuration);

            return(Task.FromResult(configuration));
        }
コード例 #3
0
        public async Task<EndpointConfiguration> GetConfiguration(RunDescriptor runDescriptor, EndpointCustomizationConfiguration endpointConfiguration, IConfigurationSource configSource, Action<EndpointConfiguration> configurationBuilderCustomization)
        {
            var settings = runDescriptor.Settings;

            var types = endpointConfiguration.GetTypesScopedByTestClass();

            typesToInclude.AddRange(types);

            var builder = new EndpointConfiguration(endpointConfiguration.EndpointName);

            builder.TypesToIncludeInScan(typesToInclude);
            builder.CustomConfigurationSource(configSource);
            builder.EnableInstallers();

            builder.DisableFeature<TimeoutManager>();
            builder.Recoverability().Delayed(cfg => cfg.NumberOfRetries(0));
            builder.Recoverability().Immediate(cfg => cfg.NumberOfRetries(0));

            await builder.DefineTransport(settings, endpointConfiguration.EndpointName).ConfigureAwait(false);

            builder.DefineBuilder(settings);
            builder.RegisterComponentsAndInheritanceHierarchy(runDescriptor);

            Type serializerType;
            if (settings.TryGet("Serializer", out serializerType))
            {
                builder.UseSerialization((SerializationDefinition) Activator.CreateInstance(serializerType));
            }
            await builder.DefinePersistence(settings, endpointConfiguration.EndpointName).ConfigureAwait(false);

            builder.GetSettings().SetDefault("ScaleOut.UseSingleBrokerQueue", true);
            configurationBuilderCustomization(builder);

            return builder;
        }
        public async Task<EndpointConfiguration> GetConfiguration(RunDescriptor runDescriptor, EndpointCustomizationConfiguration endpointConfiguration, IConfigurationSource configSource, Action<EndpointConfiguration> configurationBuilderCustomization)
        {
            var settings = runDescriptor.Settings;

            var types = endpointConfiguration.GetTypesScopedByTestClass();

            typesToInclude.AddRange(types);

            var builder = new EndpointConfiguration(endpointConfiguration.EndpointName);
            builder.TypesToIncludeInScan(typesToInclude);
            builder.CustomConfigurationSource(configSource);
            builder.EnableInstallers();

            builder.DisableFeature<TimeoutManager>();
            builder.Recoverability()
                .Delayed(delayed => delayed.NumberOfRetries(0))
                .Immediate(immediate => immediate.NumberOfRetries(0));

            await builder.DefineTransport(settings, endpointConfiguration.EndpointName).ConfigureAwait(false);

            builder.RegisterComponentsAndInheritanceHierarchy(runDescriptor);

            configurationBuilderCustomization(builder);

            return builder;
        }
        protected override Task <EndpointConfiguration> OnGetConfiguration(RunDescriptor runDescriptor,
                                                                           EndpointCustomizationConfiguration endpointCustomizationConfiguration, Action <EndpointConfiguration> configurationBuilderCustomization)
        {
            var factory = new ConfigurationFactory();

            return(Task.FromResult(factory.CreateConfiguration()));
        }
        public static IEnumerable <Type> GetTypesScopedByTestClass(this EndpointCustomizationConfiguration endpointConfiguration)
        {
            var types = endpointConfiguration.BuilderType.GetTypesScopedByTestClass();

            types = types.Union(endpointConfiguration.TypesToInclude);
            return(types.Where(t => !endpointConfiguration.TypesToExclude.Contains(t)).ToList());
        }
コード例 #7
0
        public async Task<EndpointConfiguration> GetConfiguration(RunDescriptor runDescriptor, EndpointCustomizationConfiguration endpointConfiguration, IConfigurationSource configSource, Action<EndpointConfiguration> configurationBuilderCustomization)
        {
            var settings = runDescriptor.Settings;

            var types = endpointConfiguration.GetTypesScopedByTestClass();

            typesToInclude.AddRange(types);

            var configuration = new EndpointConfiguration(endpointConfiguration.EndpointName);

            configuration.TypesToIncludeInScan(typesToInclude);
            configuration.CustomConfigurationSource(configSource);
            configuration.EnableInstallers();

            configuration.DisableFeature<TimeoutManager>();

            var recoverability = configuration.Recoverability();
            recoverability.Delayed(delayed => delayed.NumberOfRetries(0));
            recoverability.Immediate(immediate => immediate.NumberOfRetries(0));

            await configuration.DefineTransport(settings, endpointConfiguration.EndpointName).ConfigureAwait(false);

            configuration.DefineBuilder(settings);
            configuration.RegisterComponentsAndInheritanceHierarchy(runDescriptor);

            configuration.UseSerialization<WireSerializer>();
            await configuration.DefinePersistence(settings, endpointConfiguration.EndpointName).ConfigureAwait(false);

            configuration.GetSettings().SetDefault("ScaleOut.UseSingleBrokerQueue", true);
            configurationBuilderCustomization(configuration);

            return configuration;
        }
コード例 #8
0
        public static Task DefinePersistence(this EndpointConfiguration config, RunSettings settings, EndpointCustomizationConfiguration endpointCustomizationConfiguration)
        {
            Type persistenceType;
            if (!settings.TryGet("Persistence", out persistenceType))
            {
                settings.Merge(Persistence.Default.Settings);
            }

            return ConfigureTestExecution(TestDependencyType.Persistence, config, settings, endpointCustomizationConfiguration.EndpointName, endpointCustomizationConfiguration.PublisherMetadata);
        }
コード例 #9
0
        public static Task DefineTransport(this EndpointConfiguration config, RunSettings settings, EndpointCustomizationConfiguration endpointCustomizationConfiguration)
        {
            Type transportType;
            if (!settings.TryGet("Transport", out transportType))
            {
                settings.Merge(Transports.Default.Settings);
            }

            return ConfigureTestExecution(TestDependencyType.Transport, config, settings, endpointCustomizationConfiguration.EndpointName, endpointCustomizationConfiguration.PublisherMetadata);
        }
        public static IEnumerable <Type> GetTypesScopedByTestClass(this EndpointCustomizationConfiguration endpointConfiguration)
        {
            var assemblies = new AssemblyScanner().GetScannableAssemblies();

            var types = assemblies.Assemblies
                        //exclude all test types by default
                        .Where(a => !a.GetName().Name.EndsWith("AcceptanceTests"))
                        .SelectMany(a => a.GetTypes());

            types = types.Union(GetNestedTypeRecursive(endpointConfiguration.BuilderType.DeclaringType, endpointConfiguration.BuilderType));

            types = types.Union(endpointConfiguration.TypesToInclude);

            return(types.Where(t => !endpointConfiguration.TypesToExclude.Contains(t)).ToList());
        }
        public async Task <EndpointConfiguration> GetConfiguration(
            RunDescriptor runDescriptor,
            EndpointCustomizationConfiguration endpointConfiguration,
            Func <EndpointConfiguration, Task> configurationBuilderCustomization)
        {
            var configuration = new EndpointConfiguration(endpointConfiguration.EndpointName);

            configuration.TypesToIncludeInScan(endpointConfiguration.GetTypesScopedByTestClass());
            configuration.EnableInstallers();

            configuration.RegisterComponents(c => c
                                             .AddSingleton(runDescriptor.ScenarioContext.GetType(), runDescriptor.ScenarioContext));

            var recoverability = configuration.Recoverability();

            recoverability.Delayed(delayed => delayed.NumberOfRetries(0));
            recoverability.Immediate(immediate => immediate.NumberOfRetries(0));
            configuration.SendFailedMessagesTo("error");

            var connectionString =
                Environment.GetEnvironmentVariable(ServiceBusTriggeredEndpointConfiguration
                                                   .DefaultServiceBusConnectionName);

            var azureServiceBusTransport = new AzureServiceBusTransport(connectionString)
            {
                SubscriptionRuleNamingConvention = type =>
                {
                    if (type.FullName.Length <= 50)
                    {
                        return(type.FullName);
                    }

                    return(type.Name);
                }
            };

            var transport = configuration.UseTransport(azureServiceBusTransport);

            configuration.Pipeline.Register("TestIndependenceBehavior", b => new TestIndependenceSkipBehavior(runDescriptor.ScenarioContext), "Skips messages not created during the current test.");

            configuration.UseSerialization <NewtonsoftSerializer>();

            await configurationBuilderCustomization(configuration);

            return(configuration);
        }
        public static IEnumerable <Type> GetTypesScopedByTestClass(this EndpointCustomizationConfiguration endpointConfiguration)
        {
            var assemblies = new AssemblyScanner().GetScannableAssemblies();

            var assembliesToScan = assemblies.Assemblies
                                   //exclude acceptance tests by default
                                   .Where(a => a != Assembly.GetExecutingAssembly() && a != typeof(Bootstrapper).Assembly)
                                   .Where(a => a.FullName.StartsWith("ServiceControl") == false)
                                   .ToList();
            var types = assembliesToScan
                        .SelectMany(a => a.GetTypes());

            types = types.Union(GetNestedTypeRecursive(endpointConfiguration.BuilderType.DeclaringType, endpointConfiguration.BuilderType));

            types = types.Union(endpointConfiguration.TypesToInclude);

            return(types.Where(t => !endpointConfiguration.TypesToExclude.Contains(t)).ToList());
        }
        public static IEnumerable <Type> GetTypesScopedByTestClass(this EndpointCustomizationConfiguration endpointConfiguration)
        {
            var assemblies = new AssemblyScanner().GetScannableAssemblies();

            var types = assemblies.Assemblies
                        //exclude all test types by default
                        .Where(a =>
            {
                var references = a.GetReferencedAssemblies();

                return(references.All(an => an.Name != "nunit.framework"));
            })
                        .SelectMany(a => a.GetTypes());

            types = types.Union(GetNestedTypeRecursive(endpointConfiguration.BuilderType.DeclaringType, endpointConfiguration.BuilderType));

            types = types.Union(endpointConfiguration.TypesToInclude);

            return(types.Where(t => !endpointConfiguration.TypesToExclude.Contains(t)).ToList());
        }
コード例 #14
0
        static IEnumerable<Type> GetTypesScopedByTestClass(EndpointCustomizationConfiguration endpointConfiguration)
        {
            var assemblies = new AssemblyScanner().GetScannableAssemblies();

            var types = assemblies.Assemblies
                                  //exclude all test types by default
                                  .Where(a =>
                                  {
                                      var references = a.GetReferencedAssemblies();

                                      return references.All(an => an.Name != "nunit.framework");
                                  })
                                  .SelectMany(a => a.GetTypes());


            types = types.Union(GetNestedTypeRecursive(endpointConfiguration.BuilderType.DeclaringType, endpointConfiguration.BuilderType));

            types = types.Union(endpointConfiguration.TypesToInclude);

            return types.Where(t => !endpointConfiguration.TypesToExclude.Contains(t)).ToList();
        }
コード例 #15
0
#pragma warning disable CS0618
        public async Task <EndpointConfiguration> GetConfiguration(RunDescriptor runDescriptor, EndpointCustomizationConfiguration endpointConfiguration, IConfigurationSource configSource, Action <EndpointConfiguration> configurationBuilderCustomization)
#pragma warning restore CS0618
        {
            var types = endpointConfiguration.GetTypesScopedByTestClass();

            typesToInclude.AddRange(types);

            var configuration = new EndpointConfiguration(endpointConfiguration.EndpointName);

            configuration.TypesToIncludeInScan(typesToInclude);
            configuration.CustomConfigurationSource(configSource);
            configuration.EnableInstallers();

            configuration.DisableFeature <TimeoutManager>();

            var recoverability = configuration.Recoverability();

            recoverability.Delayed(delayed => delayed.NumberOfRetries(0));
            recoverability.Immediate(immediate => immediate.NumberOfRetries(0));
            configuration.SendFailedMessagesTo("error");

            await configuration.DefineTransport(runDescriptor, endpointConfiguration).ConfigureAwait(false);

            configuration.RegisterComponentsAndInheritanceHierarchy(runDescriptor);
            configuration.UseSerialization <MessagePackSerializer>();
            await configuration.DefinePersistence(runDescriptor, endpointConfiguration).ConfigureAwait(false);

            configuration.GetSettings().SetDefault("ScaleOut.UseSingleBrokerQueue", true);
            configurationBuilderCustomization(configuration);

            return(configuration);
        }
コード例 #16
0
#pragma warning disable CS0618
        public async Task <EndpointConfiguration> GetConfiguration(RunDescriptor runDescriptor, EndpointCustomizationConfiguration endpointConfiguration, IConfigurationSource configSource, Action <EndpointConfiguration> configurationBuilderCustomization)
#pragma warning restore CS0618
        {
            var settings = runDescriptor.Settings;

            var types = endpointConfiguration.GetTypesScopedByTestClass();

            typesToInclude.AddRange(types);

            var builder = new EndpointConfiguration(endpointConfiguration.EndpointName);

            builder.TypesToIncludeInScan(typesToInclude);
            builder.CustomConfigurationSource(configSource);
            builder.EnableInstallers();

            builder.DisableFeature <TimeoutManager>();
            builder.Recoverability()
            .Delayed(delayed => delayed.NumberOfRetries(0))
            .Immediate(immediate => immediate.NumberOfRetries(0));
            builder.SendFailedMessagesTo("error");

            await builder.DefineTransport(settings, endpointConfiguration).ConfigureAwait(false);

            builder.RegisterComponentsAndInheritanceHierarchy(runDescriptor);

            configurationBuilderCustomization(builder);

            return(builder);
        }
コード例 #17
0
        public Task <EndpointConfiguration> GetConfiguration(RunDescriptor runDescriptor, EndpointCustomizationConfiguration endpointConfiguration, IConfigurationSource configSource, Action <EndpointConfiguration> configurationBuilderCustomization)
        {
            var types = GetTypesScopedByTestClass(endpointConfiguration);

            typesToInclude.AddRange(types);

            var builder = new EndpointConfiguration(endpointConfiguration.EndpointName);

            builder.TypesToIncludeInScan(typesToInclude);
            builder.CustomConfigurationSource(configSource);
            builder.EnableInstallers();

            builder.DisableFeature <TimeoutManager>();
            builder.Recoverability()
            .Delayed(delayed => delayed.NumberOfRetries(0))
            .Immediate(immediate => immediate.NumberOfRetries(0));

            builder.RegisterComponents(r => { RegisterInheritanceHierarchyOfContextOnContainer(runDescriptor, r); });

            builder.UsePersistence <InMemoryPersistence>();

            configurationBuilderCustomization(builder);

            return(Task.FromResult(builder));
        }
コード例 #18
0
        public Task <EndpointConfiguration> GetConfiguration(RunDescriptor runDescriptor, EndpointCustomizationConfiguration endpointConfiguration, Action <EndpointConfiguration> configurationBuilderCustomization)
        {
            var builder = new EndpointConfiguration(endpointConfiguration.EndpointName);
            var types   = GetTypesScopedByTestClass(endpointConfiguration);

            builder.TypesToIncludeInScan(types);

            var transportConfig = builder.UseTransport <AzureServiceBusTransport>();

            transportConfig.ConnectionString(ConnectionString);

            var topology = GetEnvironmentVariable("AzureServiceBusTransport.Topology");

            if (topology == "ForwardingTopology")
            {
                transportConfig.UseForwardingTopology();
            }
            else
            {
                var endpointOrientedTopology = transportConfig.UseEndpointOrientedTopology();
                foreach (var publisher in endpointConfiguration.PublisherMetadata.Publishers)
                {
                    foreach (var eventType in publisher.Events)
                    {
                        endpointOrientedTopology.RegisterPublisher(eventType, publisher.PublisherName);
                    }
                }
            }

            builder.UseSerialization <NewtonsoftSerializer>();
            builder.EnableInstallers();

            transportConfig.Sanitization()
            .UseStrategy <ValidateAndHashIfNeeded>();

            // w/o retries ASB will move attempted messages to the error queue right away, which will cause false failure.
            // ScenarioRunner.PerformScenarios() verifies by default no messages are moved into error queue. If it finds any, it fails the test.
            builder.Recoverability().Immediate(retriesSettings => retriesSettings.NumberOfRetries(3));

            builder.RegisterComponents(r => { RegisterInheritanceHierarchyOfContextOnContainer(runDescriptor, r); });

            configurationBuilderCustomization(builder);


            return(Task.FromResult(builder));
        }
コード例 #19
0
        protected override Task <EndpointConfiguration> OnGetConfiguration(RunDescriptor runDescriptor, EndpointCustomizationConfiguration endpointCustomizationConfiguration, Action <EndpointConfiguration> configurationBuilderCustomization)
        {
            var config = MyOtherServiceConfigurationBuilder.Build(
                "MyOtherService",
                "host=localhost;username=guest;password=guest");

            return(Task.FromResult(config));
        }
コード例 #20
0
        public virtual async Task <EndpointConfiguration> GetConfiguration(RunDescriptor runDescriptor, EndpointCustomizationConfiguration endpointConfiguration, Action <EndpointConfiguration> configurationBuilderCustomization)
        {
            var configuration = new EndpointConfiguration(endpointConfiguration.EndpointName);

            configuration.TypesToIncludeInScan(endpointConfiguration.GetTypesScopedByTestClass());
            configuration.EnableInstallers();

            var recoverability = configuration.Recoverability();

            recoverability.Delayed(delayed => delayed.NumberOfRetries(0));
            recoverability.Immediate(immediate => immediate.NumberOfRetries(0));
            configuration.SendFailedMessagesTo("error");

            await configuration.DefineTransport(TransportConfiguration, runDescriptor, endpointConfiguration).ConfigureAwait(false);

            configuration.RegisterComponentsAndInheritanceHierarchy(runDescriptor);

            await configuration.DefinePersistence(PersistenceConfiguration, runDescriptor, endpointConfiguration).ConfigureAwait(false);

            configurationBuilderCustomization(configuration);

            return(configuration);
        }
コード例 #21
0
 public Task <EndpointConfiguration> GetConfiguration(RunDescriptor runDescriptor, EndpointCustomizationConfiguration endpointConfiguration, IConfigurationSource configSource, Action <EndpointConfiguration> configurationBuilderCustomization)
 {
     return(new DefaultServer().GetConfiguration(runDescriptor, endpointConfiguration, configSource, configurationBuilderCustomization));
 }
コード例 #22
0
        public static async Task DefinePersistence(this EndpointConfiguration config, RunDescriptor runDescriptor, EndpointCustomizationConfiguration endpointCustomizationConfiguration)
        {
            var persistenceConfiguration = new ConfigureEndpointInMemoryPersistence();
            await persistenceConfiguration.Configure(endpointCustomizationConfiguration.EndpointName, config, runDescriptor.Settings, endpointCustomizationConfiguration.PublisherMetadata);

            runDescriptor.OnTestCompleted(_ => persistenceConfiguration.Cleanup());
        }
コード例 #23
0
 public static Task DefineTransport(this EndpointConfiguration config, RunDescriptor runDescriptor, EndpointCustomizationConfiguration endpointCustomizationConfiguration)
 {
     //var transportConfiguration = new ConfigureEndpointMsmqTransport();
     //await transportConfiguration.Configure(endpointCustomizationConfiguration.EndpointName, config, runDescriptor.Settings, endpointCustomizationConfiguration.PublisherMetadata);
     //runDescriptor.OnTestCompleted(_ => transportConfiguration.Cleanup());
     return(Task.CompletedTask);
 }
        public override Task <EndpointConfiguration> GetConfiguration(RunDescriptor runDescriptor, EndpointCustomizationConfiguration endpointCustomizationConfiguration, Action <EndpointConfiguration> configurationBuilderCustomization)
        {
            return(base.GetConfiguration(runDescriptor, endpointCustomizationConfiguration, endpointConfiguration =>
            {
                // property injection working OOTB
                endpointConfiguration.UseContainer(new WindsorServiceProviderFactory());

                configurationBuilderCustomization(endpointConfiguration);
            }));
        }
コード例 #25
0
// Disable obsolete warning until MessageEndpointMappings has been removed from config and we can remove the parameter completetely
#pragma warning disable CS0618
        public async Task <EndpointConfiguration> GetConfiguration(RunDescriptor runDescriptor, EndpointCustomizationConfiguration endpointConfiguration, IConfigurationSource configSource, Action <EndpointConfiguration> configurationBuilderCustomization)
#pragma warning restore CS0618
        {
            var config = await new DefaultServer(new List <Type>
            {
                typeof(FakeReadyMessageProcessor)
            }).GetConfiguration(runDescriptor, endpointConfiguration, configSource, configurationBuilderCustomization);

            config.EnableFeature <TimeoutManager>();
            config.EnableFeature <FakeReadyMessageProcessor>();
            return(config);
        }
コード例 #26
0
        public static Task DefinePersistence(this EndpointConfiguration config, RunSettings settings, EndpointCustomizationConfiguration endpointCustomizationConfiguration)
        {
            Type persistenceType;

            if (!settings.TryGet("Persistence", out persistenceType))
            {
                settings.Merge(Persistence.Default.Settings);
            }

            return(ConfigureTestExecution(TestDependencyType.Persistence, config, settings, endpointCustomizationConfiguration.EndpointName, endpointCustomizationConfiguration.PublisherMetadata));
        }
コード例 #27
0
        public async Task <EndpointConfiguration> GetConfiguration(RunDescriptor runDescriptor, EndpointCustomizationConfiguration endpointConfiguration, Action <EndpointConfiguration> configurationBuilderCustomization)
        {
            var types = endpointConfiguration.GetTypesScopedByTestClass();

            typesToInclude.AddRange(types);

            var configuration = new EndpointConfiguration(endpointConfiguration.EndpointName);

            configuration.TypesToIncludeInScan(typesToInclude);
            configuration.EnableInstallers();

            var recoverability = configuration.Recoverability();

            recoverability.Delayed(delayed => delayed.NumberOfRetries(0));
            recoverability.Immediate(immediate => immediate.NumberOfRetries(0));

            await configuration.DefineTransport(runDescriptor, endpointConfiguration).ConfigureAwait(false);

            configuration.RegisterComponentsAndInheritanceHierarchy(runDescriptor);

            await configuration.DefinePersistence(runDescriptor, endpointConfiguration).ConfigureAwait(false);

            configuration.GetSettings().SetDefault("ScaleOut.UseSingleBrokerQueue", true);
            configurationBuilderCustomization(configuration);

            return(configuration);
        }
        public Task <EndpointConfiguration> GetConfiguration(RunDescriptor runDescriptor, EndpointCustomizationConfiguration endpointConfiguration,
                                                             IConfigurationSource configSource, Action <EndpointConfiguration> configurationBuilderCustomization)
        {
            var config = new EndpointConfiguration(endpointConfiguration.EndpointName);

            config.UseTransport <MsmqTransport>();
            config.PurgeOnStartup(true);
            config.UsePersistence <InMemoryPersistence>();
            config.SendFailedMessagesTo("error");
            config.EnableInstallers();
            config.RegisterComponents(r => r.ConfigureComponent <ScenarioContext>(() => runDescriptor.ScenarioContext, DependencyLifecycle.SingleInstance));
            config.TypesToIncludeInScan(new Type[]
            {
                typeof(ContextCop), // why is that needed?
                typeof(WhenUsingMessageContextInHandler.IncomingMessage),
                typeof(WhenUsingMessageContextInHandler.OutgoingMessage),
                typeof(WhenUsingMessageContextInHandler.Endpoint.OutgoingMessageHandler),
                typeof(WhenUsingMessageContextInHandler.Endpoint.IncomingMessageHandler)
            });
            config.DisableFeature <FirstLevelRetries>();
            config.DisableFeature <Features.SecondLevelRetries>();

            return(Task.FromResult(config));
        }
コード例 #29
0
        public Task <EndpointConfiguration> GetConfiguration(RunDescriptor runDescriptor, EndpointCustomizationConfiguration endpointConfiguration, Action <EndpointConfiguration> configurationBuilderCustomization)
        {
            return(new DefaultServerWithAudit().GetConfiguration(runDescriptor, endpointConfiguration, b =>
            {
                b.DisableFeature <Audit>();

                configurationBuilderCustomization(b);
            }));
        }
コード例 #30
0
 public Task<EndpointConfiguration> GetConfiguration(RunDescriptor runDescriptor, EndpointCustomizationConfiguration endpointConfiguration, IConfigurationSource configSource, Action<EndpointConfiguration> configurationBuilderCustomization)
 {
     return new DefaultServer().GetConfiguration(runDescriptor, endpointConfiguration, configSource, configurationBuilderCustomization);
 }
コード例 #31
0
        public virtual Task <EndpointConfiguration> GetConfiguration(RunDescriptor runDescriptor, EndpointCustomizationConfiguration endpointCustomizationConfiguration, Action <EndpointConfiguration> configurationBuilderCustomization)
        {
            var endpointConfiguration = new EndpointConfiguration(endpointCustomizationConfiguration.EndpointName);

            endpointConfiguration.TypesToIncludeInScan(endpointCustomizationConfiguration.GetTypesScopedByTestClass());

            endpointConfiguration.Recoverability()
            .Delayed(delayed => delayed.NumberOfRetries(0))
            .Immediate(immediate => immediate.NumberOfRetries(0));

            endpointConfiguration.EnableInstallers();

            var transport = endpointConfiguration.UseTransport <RabbitMQTransport>();

            transport.UseConventionalRoutingTopology();

            endpointConfiguration.RegisterComponentsAndInheritanceHierarchy(runDescriptor);

            configurationBuilderCustomization(endpointConfiguration);

            return(Task.FromResult(endpointConfiguration));
        }
コード例 #32
0
        public Task <EndpointConfiguration> GetConfiguration(RunDescriptor runDescriptor, EndpointCustomizationConfiguration endpointConfiguration, Action <EndpointConfiguration> configurationBuilderCustomization)
        {
            var types = GetTypesScopedByTestClass(endpointConfiguration);

            _typesToInclude.AddRange(types);

            var builder = new EndpointConfiguration(endpointConfiguration.EndpointName);

            builder.TypesToIncludeInScan(_typesToInclude);
            builder.EnableInstallers();

            builder.UseTransport <LearningTransport>();
            builder.DisableFeature <TimeoutManager>();
            builder.UsePersistence <InMemoryPersistence>();
            if (_services != null)
            {
                builder.UseContainer <ServicesBuilder>(c => c.ExistingServices(_services));
            }
            else
            {
                builder.UseContainer <ServicesBuilder>();
            }

            builder.Recoverability().Immediate(immediateRetries => immediateRetries.NumberOfRetries(0));
            builder.Recoverability().Delayed(delayedRetires => delayedRetires.NumberOfRetries(0));

            builder.RegisterComponents(r => { RegisterInheritanceHierarchyOfContextOnContainer(runDescriptor, r); });

            configurationBuilderCustomization(builder);

            return(Task.FromResult(builder));
        }
コード例 #33
0
        public virtual Task <EndpointConfiguration> GetConfiguration(RunDescriptor runDescriptor, EndpointCustomizationConfiguration endpointCustomizationConfiguration, Action <EndpointConfiguration> configurationBuilderCustomization)
        {
            var endpointConfiguration = new EndpointConfiguration(endpointCustomizationConfiguration.EndpointName);

            endpointConfiguration.TypesToIncludeInScan(endpointCustomizationConfiguration.GetTypesScopedByTestClass());

            endpointConfiguration.Recoverability()
            .Delayed(delayed => delayed.NumberOfRetries(0))
            .Immediate(immediate => immediate.NumberOfRetries(0));

            var storageDir = Path.Combine(NServiceBusAcceptanceTest.StorageRootDir, TestContext.CurrentContext.Test.ID);

            endpointConfiguration.EnableInstallers();

            endpointConfiguration.UseTransport(new LearningTransport {
                StorageDirectory = storageDir
            });

            endpointConfiguration.RegisterComponentsAndInheritanceHierarchy(runDescriptor);

            configurationBuilderCustomization(endpointConfiguration);

            return(Task.FromResult(endpointConfiguration));
        }
コード例 #34
0
ファイル: JSonServer.cs プロジェクト: sergioc/ServiceControl
 public Task <EndpointConfiguration> GetConfiguration(RunDescriptor runDescriptor, EndpointCustomizationConfiguration endpointConfiguration, Action <EndpointConfiguration> configurationBuilderCustomization)
 {
     return(new DefaultServerWithAudit().GetConfiguration(runDescriptor, endpointConfiguration, b =>
     {
         b.UseSerialization <NewtonsoftSerializer>();
         configurationBuilderCustomization(b);
     }));
 }
コード例 #35
0
        public static Task DefineTransport(this EndpointConfiguration config, RunSettings settings, EndpointCustomizationConfiguration endpointCustomizationConfiguration)
        {
            Type transportType;

            if (!settings.TryGet("Transport", out transportType))
            {
                settings.Merge(Transports.Default.Settings);
            }

            return(ConfigureTestExecution(TestDependencyType.Transport, config, settings, endpointCustomizationConfiguration.EndpointName, endpointCustomizationConfiguration.PublisherMetadata));
        }
コード例 #36
0
        public virtual Task <EndpointConfiguration> GetConfiguration(RunDescriptor runDescriptor, EndpointCustomizationConfiguration endpointCustomizationConfiguration, Action <EndpointConfiguration> configurationBuilderCustomization)
        {
            var endpointConfiguration = new EndpointConfiguration(endpointCustomizationConfiguration.EndpointName);

            endpointConfiguration.TypesToIncludeInScan(endpointCustomizationConfiguration.GetTypesScopedByTestClass());

            endpointConfiguration.Recoverability()
            .Delayed(delayed => delayed.NumberOfRetries(0))
            .Immediate(immediate => immediate.NumberOfRetries(0));

            var storageDir = Path.Combine(RavenDBAcceptanceTest.StorageRootDir, TestContext.CurrentContext.Test.ID);

            endpointConfiguration.EnableInstallers();

            var transport = endpointConfiguration.UseTransport <AcceptanceTestingTransport>();

            transport.StorageDirectory(storageDir);
            transport.UseNativeDelayedDelivery(false);

            endpointConfiguration.EnableFeature <TimeoutManager>();

            endpointConfiguration.RegisterComponentsAndInheritanceHierarchy(runDescriptor);

            configurationBuilderCustomization(endpointConfiguration);

            return(Task.FromResult(endpointConfiguration));
        }
コード例 #37
0
        public async Task <EndpointConfiguration> GetConfiguration(RunDescriptor runDescriptor, EndpointCustomizationConfiguration endpointConfiguration, Action <EndpointConfiguration> configurationBuilderCustomization)
        {
            ServicePointManager.DefaultConnectionLimit = 100;

            var typesToInclude = new List <Type>();

            var builder = new EndpointConfiguration(endpointConfiguration.EndpointName);

            typesToInclude.AddRange(endpointConfiguration.GetTypesScopedByTestClass <TBootstrapper>().Concat(new[]
            {
                typeof(TraceIncomingBehavior),
                typeof(TraceOutgoingBehavior)
            }));

            builder.Pipeline.Register(new StampDispatchBehavior(runDescriptor.ScenarioContext), "Stamps outgoing messages with session ID");
            builder.Pipeline.Register(new DiscardMessagesBehavior(runDescriptor.ScenarioContext), "Discards messages based on session ID");

            builder.SendFailedMessagesTo("error");

            builder.TypesToIncludeInScan(typesToInclude);
            builder.EnableInstallers();

            await builder.DefineTransport(runDescriptor, endpointConfiguration).ConfigureAwait(false);

            builder.RegisterComponentsAndInheritanceHierarchy(runDescriptor);
            await builder.DefinePersistence(runDescriptor, endpointConfiguration).ConfigureAwait(false);

            typeof(ScenarioContext).GetProperty("CurrentEndpoint", BindingFlags.Static | BindingFlags.NonPublic).SetValue(runDescriptor.ScenarioContext, endpointConfiguration.EndpointName);

            builder.UseSerialization <NewtonsoftSerializer>();

            builder.Pipeline.Register <TraceIncomingBehavior.Registration>();
            builder.Pipeline.Register <TraceOutgoingBehavior.Registration>();

            builder.Conventions().DefiningEventsAs(t => typeof(IEvent).IsAssignableFrom(t) || IsExternalContract(t));

            builder.RegisterComponents(r => { builder.GetSettings().Set("SC.ConfigureComponent", r); });

            builder.GetSettings().Set("SC.ScenarioContext", runDescriptor.ScenarioContext);

            builder.DisableFeature <AutoSubscribe>();

            configurationBuilderCustomization(builder);

            return(builder);
        }
コード例 #38
0
        public Task <EndpointConfiguration> GetConfiguration(RunDescriptor runDescriptor, EndpointCustomizationConfiguration endpointConfiguration, Action <EndpointConfiguration> configurationBuilderCustomization)
        {
            var builder = new EndpointConfiguration(endpointConfiguration.EndpointName);
            var types   = GetTypesScopedByTestClass(endpointConfiguration);

            builder.TypesToIncludeInScan(types);

            var transport = builder.UseTransport <Transports.AmazonSQS.ServiceControlSqsTransport>()
                            .ConnectionString(ConnectionString);

            var routingConfig = transport.Routing();

            foreach (var publisher in endpointConfiguration.PublisherMetadata.Publishers)
            {
                foreach (var eventType in publisher.Events)
                {
                    routingConfig.RegisterPublisher(eventType, publisher.PublisherName);
                }
            }

            builder.EnableInstallers();

            builder.UsePersistence <InMemoryPersistence>();

            builder.Recoverability().Delayed(delayedRetries => delayedRetries.NumberOfRetries(0));
            builder.Recoverability().Immediate(immediateRetries => immediateRetries.NumberOfRetries(0));

            builder.RegisterComponents(r => { RegisterInheritanceHierarchyOfContextOnContainer(runDescriptor, r); });

            configurationBuilderCustomization(builder);

            return(Task.FromResult(builder));
        }