public void SetUp()
        {
            _environmentSettingsMutex = new EnvironmentSettingsMutex();
            _environmentSettingsMutex.SetEnvironmentVariable(_environmentVariableKey, "42");

            DefaultSettingsReader.SetStrategy(new DefaultStaticSettingReaderStrategy());
        }
示例#2
0
 public void SetUp()
 {
     _namespaceCleanser = new NamespaceCleanser(new ConnectionStringSetting {
         Value = DefaultSettingsReader.Get <AzureServiceBusConnectionString>()
     }, new NullLogger());
     _namespaceCleanser.RemoveAllExistingNamespaceElements().Wait();
 }
示例#3
0
        public void SetUp()
        {
            _environmentSettingsMutex = new EnvironmentSettingsMutex();

            DefaultSettingsReader.SetStrategy(new DefaultStaticSettingReaderStrategy());

            _setting = DefaultSettingsReader.Get <SimpleIntSetting>();
        }
示例#4
0
        public override ScenarioInstance <LargeMessageStorageConfiguration> CreateInstance()
        {
            var azureBlobStorageConnectionString = DefaultSettingsReader.Get <AzureBlobStorageConnectionString>();
            var configuration = new AzureBlobStorageLargeMessageStorageConfiguration()
                                .UsingStorageAccountConnectionString(azureBlobStorageConnectionString);

            var instance = new ScenarioInstance <LargeMessageStorageConfiguration>(configuration);

            return(instance);
        }
        protected override async Task <AzureBlobStorageLargeMessageBodyStore> Given()
        {
            var logger = TestHarnessLoggerFactory.Create(Guid.NewGuid(), GetType().FullName);

            return(new AzureBlobStorageLargeMessageBodyStore(
                       new AzureStorageAccountConnectionStringSetting {
                Value = DefaultSettingsReader.Get <AzureBlobStorageConnectionString>()
            },
                       new AutoCreateBlobStorageContainerNameSetting(),
                       logger));
        }
示例#6
0
        public override ScenarioInstance <TransportConfiguration> CreateInstance()
        {
            var connectionString = DefaultSettingsReader.Get <RedisConnectionString>();

            var configuration = new RedisTransportConfiguration()
                                .WithConnectionString(connectionString);

            var instance = new ScenarioInstance <TransportConfiguration>(configuration);

            return(instance);
        }
示例#7
0
        public async Task WeShouldGetASuccessfulResponse()
        {
            var healthCheckEndpoint = DefaultSettingsReader.Get <WebSiteBaseUrl>();

            using (var client = new HttpClient())
            {
                var response = await client.GetAsync(healthCheckEndpoint);

                response.EnsureSuccessStatusCode();
            }
        }
示例#8
0
        public override ScenarioInstance <LargeMessageStorageConfiguration> CreateInstance()
        {
            var uri       = DefaultSettingsReader.Get <AzureBlobStorageContainerUri>();
            var accessKey = DefaultSettingsReader.Get <AzureBlobStorageContainerSharedAccessSignature>();

            var configuration = new AzureBlobStorageHttpLargeMessageStorageConfiguration()
                                .UsingBlobStorageContainer(uri, accessKey);

            var instance = new ScenarioInstance <LargeMessageStorageConfiguration>(configuration);

            return(instance);
        }
示例#9
0
 public void SetUp()
 {
     _globalPrefix = new GlobalPrefixSetting {
         Value = Guid.NewGuid().ToString()
     };
     _namespaceCleanser = new NamespaceCleanser(new ConnectionStringSetting {
         Value = DefaultSettingsReader.Get <AzureServiceBusConnectionString>()
     },
                                                _globalPrefix,
                                                new NullLogger());
     _namespaceCleanser.RemoveAllExistingNamespaceElements().Wait();
 }
示例#10
0
        public ScenarioInstance <TransportConfiguration> CreateInstance()
        {
            var largeMessageStorageInstance = _largeMessageScenario.CreateInstance();

            var azureServiceBusConnectionString = DefaultSettingsReader.Get <AzureServiceBusConnectionString>();
            var configuration = new WindowsServiceBusTransportConfiguration()
                                .WithConnectionString(azureServiceBusConnectionString)
                                .WithLargeMessageStorage(largeMessageStorageInstance.Configuration);

            var instance = new ScenarioInstance <TransportConfiguration>(configuration);

            return(instance);
        }
        public static Logger CreateLogger()
        {
            var logLevelSwitch  = new LoggingLevelSwitch();
            var applicationName = DefaultSettingsReader.Get <ApplicationName>();

            var logger = new LoggerConfiguration()
                         .MinimumLevel.ControlledBy(logLevelSwitch)
                         .WriteTo.Console()
                         .WriteTo.Seq(DefaultSettingsReader.Get <SeqServerUrl>().ToString(), controlLevelSwitch: logLevelSwitch)
                         .Enrich.WithProcessId()
                         .Enrich.WithMachineName()
                         .Enrich.WithEnvironmentUserName()
                         .Enrich.WithProperty(nameof(ApplicationName), applicationName)
                         .Enrich.With <CorrelationIdEnricher>()
                         .CreateLogger();

            logger.Information("Application {ApplicationName} starting up", applicationName);
            return(logger);
        }
示例#12
0
        public static void Main(string[] args)
        {
            DefaultSettingsReader.SetStrategy(new CustomStaticReaderStrategy(Constants.ServiceAssembly));

            var environmentName = DefaultSettingsReader.Get <EnvironmentNameSetting>();
            var environmentType = DefaultSettingsReader.Get <EnvironmentTypeSetting>();
            var minimumLogLevel = DefaultSettingsReader.Get <MinimumLogLevelSetting>();
            var seqServerUri    = DefaultSettingsReader.Get <SeqServerUriSetting>();

            Log.Logger = new LoggerFactory(environmentName, environmentType, minimumLogLevel, seqServerUri)
                         .CreateLogger();


            var service = new SampleService().Start();

            Console.WriteLine("Press any key to exit");
            Console.ReadKey();

            service.Stop();
        }
示例#13
0
        protected void Application_Start()
        {
            //TODO Extract logger configuration (during presentation)
            var seqServerUri   = DefaultSettingsReader.Get <SeqServerUri>();
            var seqApiKey      = DefaultSettingsReader.Get <SeqApiKey>();
            var logEventLevel  = DefaultSettingsReader.Get <LogEventLevel>();
            var logLevelSwitch = new LoggingLevelSwitch(logEventLevel);
            var appPoolId      = Environment.GetEnvironmentVariable("APP_POOL_ID", EnvironmentVariableTarget.Process);

            ApplicationLifecycleModule.RequestLoggingLevel = Serilog.Events.LogEventLevel.Verbose;

            Log.Logger = new LoggerConfiguration()
                         .MinimumLevel.ControlledBy(logLevelSwitch)
                         .WriteTo.Seq(seqServerUri.ToString(), apiKey: seqApiKey, controlLevelSwitch: logLevelSwitch)
                         .Enrich.FromLogContext()
                         .Enrich.WithProperty("ApplicationName", typeof(MvcApplication).Assembly.GetName().Name)
                         .Enrich.WithProperty("ApplicationVersion", typeof(MvcApplication).Assembly.GetName().Version)
                         .Enrich.WithProperty("ApplicationPool", appPoolId)
                         .Enrich.WithProperty("ProcessName", Process.GetCurrentProcess().ProcessName)
                         .Enrich.WithMachineName()
                         .Enrich.WithProcessId()
                         .Enrich.WithThreadId()
                         .Enrich.With <HttpRequestClientHostIPEnricher>()
                         .Enrich.With <HttpRequestNumberEnricher>()
                         .Enrich.With <HttpRequestIdEnricher>()
                         .Enrich.With <HttpRequestRawUrlEnricher>()
                         .Enrich.With <HttpRequestTypeEnricher>()
                         .Enrich.With <HttpRequestUrlEnricher>()
                         .Enrich.With <HttpRequestUrlReferrerEnricher>()
                         .Enrich.With <HttpRequestUserAgentEnricher>()
                         .CreateLogger();
            Log.Information("Logger online");

            AreaRegistration.RegisterAllAreas();
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);

            _container = IoC.LetThereBeIoC();
            DependencyResolver.SetResolver(new AutofacDependencyResolver(_container));
        }
        public void TheValueShouldBeTheOverriddenOne()
        {
            var setting = DefaultSettingsReader.Get <SimpleIntSetting>();

            setting.Value.ShouldBe(42);
        }
示例#15
0
 public void NothingShouldGoBang()
 {
     var setting = DefaultSettingsReader.Get <SimpleIntSetting>();
 }
        public ApplicationDbContext Create()
        {
            var connectionString = DefaultSettingsReader.Get <ApplicationDbConnectionString>();

            return(new ApplicationDbContext(connectionString));
        }
示例#17
0
        public async Task TheStartupTimeShouldBeAcceptable()
        {
            const int numMessageTypes = 50;

            var assemblyBuilder = EmitMessageContractsAndHandlersAssembly(numMessageTypes);

            var logger       = TestHarnessLoggerFactory.Create(Guid.NewGuid(), GetType().FullName);
            var typeProvider = new AssemblyScanningTypeProvider(assemblyBuilder);

            var firstBus = new BusBuilder().Configure()
                           .WithNames("MyTestSuite", Environment.MachineName)
                           .WithDefaults(typeProvider)
                           .WithTransport(new WindowsServiceBusTransportConfiguration()
                                          .WithConnectionString(DefaultSettingsReader.Get <AzureServiceBusConnectionString>()))
                           .WithLogger(logger)
                           .WithDebugOptions(
                dc =>
                dc.RemoveAllExistingNamespaceElementsOnStartup(
                    "I understand this will delete EVERYTHING in my namespace. I promise to only use this for test suites."))
                           .Build();

            try
            {
                try
                {
                    await firstBus.Start(MessagePumpTypes.All);
                }
                catch (AggregateException exc)
                {
                    throw exc.Flatten();
                }
            }
            finally
            {
                firstBus.Dispose();
            }

            var subsequentBus = new BusBuilder().Configure()
                                .WithNames("MyTestSuite", Environment.MachineName)
                                .WithTransport(new WindowsServiceBusTransportConfiguration()
                                               .WithConnectionString(DefaultSettingsReader.Get <AzureServiceBusConnectionString>()))
                                .WithDefaults(typeProvider)
                                .WithLogger(logger)
                                .Build();

            try
            {
                try
                {
                    await subsequentBus.Start(MessagePumpTypes.All);
                }
                catch (AggregateException exc)
                {
                    throw exc.Flatten();
                }
            }
            finally
            {
                subsequentBus.Dispose();
            }
        }