コード例 #1
0
ファイル: TestHelper.cs プロジェクト: leekelleher/umbraco-cms
        public TestHelper()
            : base(typeof(TestHelper).Assembly)
        {
            var httpContext = new DefaultHttpContext();

            httpContext.Connection.RemoteIpAddress = IPAddress.Parse("127.0.0.1");
            _httpContextAccessor = Mock.Of <IHttpContextAccessor>(x => x.HttpContext == httpContext);
            _ipResolver          = new AspNetCoreIpResolver(_httpContextAccessor);

            string contentRoot = Assembly.GetExecutingAssembly().GetRootDirectorySafe();

            // The mock for IWebHostEnvironment has caused a good few issues.
            // We can UseContentRoot, UseWebRoot etc on the host builder instead.
            // possibly going down rabbit holes though as would need to cleanup all usages of
            // GetHostingEnvironment & GetWebHostEnvironment.
            var hostEnvironment = new Mock <IWebHostEnvironment>();

            // This must be the assembly name for the WebApplicationFactory to work.
            hostEnvironment.Setup(x => x.ApplicationName).Returns(GetType().Assembly.GetName().Name);
            hostEnvironment.Setup(x => x.ContentRootPath).Returns(() => contentRoot);
            hostEnvironment.Setup(x => x.ContentRootFileProvider).Returns(() => new PhysicalFileProvider(contentRoot));
            hostEnvironment.Setup(x => x.WebRootPath).Returns(() => WorkingDirectory);
            hostEnvironment.Setup(x => x.WebRootFileProvider).Returns(() => new PhysicalFileProvider(WorkingDirectory));
            hostEnvironment.Setup(x => x.EnvironmentName).Returns("Tests");

            // We also need to expose it as the obsolete interface since netcore's WebApplicationFactory casts it.
            hostEnvironment.As <Microsoft.AspNetCore.Hosting.IHostingEnvironment>();

            _hostEnvironment = hostEnvironment.Object;

            _hostingLifetime     = new AspNetCoreApplicationShutdownRegistry(Mock.Of <IHostApplicationLifetime>());
            ConsoleLoggerFactory = LoggerFactory.Create(builder => builder.AddConsole());
            ProfilingLogger      = new ProfilingLogger(ConsoleLoggerFactory.CreateLogger <ProfilingLogger>(), Profiler);
        }
コード例 #2
0
        protected override void SetUp()
        {
            var loggerFactory = new ConsoleLoggerFactory(false);

            _storage = new OracleDataBusStorage(OracleTestHelper.ConnectionHelper, tableName, loggerFactory, new FakeRebusTime());
            _storage.EnsureTableIsCreated();
        }
コード例 #3
0
        static SqlServerTransport GetTransport(TransportType transportType)
        {
            var rebusTime          = new DefaultRebusTime();
            var loggerFactory      = new ConsoleLoggerFactory(false);
            var connectionProvider = new DbConnectionProvider(SqlTestHelper.ConnectionString, loggerFactory);
            var asyncTaskFactory   = new TplAsyncTaskFactory(loggerFactory);

            var transport = transportType == TransportType.LeaseBased
                ? new SqlServerLeaseTransport(
                connectionProvider,
                QueueName,
                loggerFactory,
                asyncTaskFactory,
                rebusTime,
                TimeSpan.FromMinutes(1),
                TimeSpan.FromSeconds(5),
                () => "who cares",
                new SqlServerLeaseTransportOptions(connectionProvider)
                )
                : new SqlServerTransport(
                connectionProvider,
                QueueName,
                loggerFactory,
                asyncTaskFactory,
                rebusTime,
                new SqlServerTransportOptions(connectionProvider)
                );

            transport.EnsureTableIsCreated();
            transport.Initialize();

            return(transport);
        }
コード例 #4
0
        static void Main(string[] args)
        {
            ILoggerFactory loggerFactory = new ConsoleLoggerFactory();

            using (CachingRepository <MessageTemplate> repository
                       = new CachingRepository <MessageTemplate>(
                             new Repository <MessageTemplate>(new MessageTemplatesContext())))
            {
                ITransmissionStrategy transmissionStrategy =
                    new SmsTransmissionStrategy(loggerFactory);

                Messenger messenger = new Messenger(
                    loggerFactory,
                    repository,
                    transmissionStrategy);

                IUser user = new User("Gen-Eric", "*****@*****.**", "+4522123631");

                messenger.Send(new Message
                {
                    Recipient         = user,
                    MessageTemplateId = 1,
                    Parameters        = new List <object> {
                        "Jesper", DateTime.Now
                    }
                });

                Console.ReadLine();
            }
        }
コード例 #5
0
    SqlServerTransport GetTransport(string connectionString, IsolationLevel isolationLevel)
    {
        var rebusTime          = new DefaultRebusTime();
        var rebusLoggerFactory = new ConsoleLoggerFactory(false);

        var connectionProvider = new DbConnectionProvider(connectionString, rebusLoggerFactory)
        {
            IsolationLevel = isolationLevel
        };

        var taskFactory = new TplAsyncTaskFactory(rebusLoggerFactory);

        var transport = new SqlServerTransport(
            connectionProvider: connectionProvider,
            inputQueueName: _queueName,
            rebusLoggerFactory: rebusLoggerFactory,
            asyncTaskFactory: taskFactory,
            rebusTime: rebusTime,
            options: new SqlServerTransportOptions(connectionProvider)
            );

        transport.Initialize();

        return(transport);
    }
コード例 #6
0
        protected override void SetUp()
        {
            var connectionString     = AsbTestConfig.ConnectionString;
            var consoleLoggerFactory = new ConsoleLoggerFactory(false);
            var asyncTaskFactory     = new TplAsyncTaskFactory(consoleLoggerFactory);

            using (var transport = new AzureServiceBusTransport(connectionString, QueueName, consoleLoggerFactory, asyncTaskFactory, new DefaultNameFormatter()))
            {
                transport.PurgeInputQueue();
            }

            _activator = new BuiltinHandlerActivator();

            _busStarter = Configure.With(_activator)
                          .Transport(t => t.UseAzureServiceBus(connectionString, QueueName))
                          .Routing(r => r.TypeBased().Map <TimedMessage>(QueueName))
                          .Options(o =>
            {
                o.LogPipeline();
            })
                          .Create();

            _bus = _busStarter.Bus;

            Using(_bus);
        }
コード例 #7
0
        public async Task DeliversMessagesByVisibleTimeAndNotByInsertionTime()
        {
            var rebusTime          = new DefaultRebusTime();
            var loggerFactory      = new ConsoleLoggerFactory(false);
            var connectionProvider = new DbConnectionProvider(MySqlTestHelper.ConnectionString, loggerFactory);
            var asyncTaskFactory   = new TplAsyncTaskFactory(loggerFactory);

            var transport = new MySqlTransport(
                connectionProvider,
                QueueName,
                loggerFactory,
                asyncTaskFactory,
                rebusTime,
                new MySqlTransportOptions(connectionProvider));

            transport.EnsureTableIsCreated();
            transport.Initialize();

            var now = DateTime.Now;

            await PutInQueue(transport, GetTransportMessage("first message"));
            await PutInQueue(transport, GetTransportMessage("second message", deferredUntilTime : now.AddMinutes(-1)));
            await PutInQueue(transport, GetTransportMessage("third message", deferredUntilTime : now.AddMinutes(-2)));

            var firstMessage = await ReceiveMessageBody(transport);

            var secondMessage = await ReceiveMessageBody(transport);

            var thirdMessage = await ReceiveMessageBody(transport);

            // expect messages to be received in reverse order because of their visible times
            Assert.That(firstMessage, Is.EqualTo("third message"));
            Assert.That(secondMessage, Is.EqualTo("second message"));
            Assert.That(thirdMessage, Is.EqualTo("first message"));
        }
コード例 #8
0
        static MySqlSubscriptionStorage GetStorage(bool createCustomSchema)
        {
            MySqlTestHelper.DropTable("Subscriptions");

            var loggerFactory      = new ConsoleLoggerFactory(false);
            var connectionProvider = new DbConnectionProvider(MySqlTestHelper.ConnectionString, loggerFactory);
            var storage            = new MySqlSubscriptionStorage(connectionProvider, "Subscriptions", true, loggerFactory);

            if (createCustomSchema)
            {
                var tableName = TableName.Parse("Subscriptions");

                MySqlTestHelper.Execute($@"
                    CREATE TABLE {tableName.QualifiedName} (
                        `topic` VARCHAR(350) NOT NULL,
	                    `address` VARCHAR(50) NOT NULL,
                        PRIMARY KEY (`topic`, `address`)
                    )");
            }
            else
            {
                storage.EnsureTableIsCreated();
            }

            return(storage);
        }
コード例 #9
0
        public ITransport Create(string inputQueueAddress)
        {
            var consoleLoggerFactory = new ConsoleLoggerFactory(false);
            var asyncTaskFactory     = new TplAsyncTaskFactory(consoleLoggerFactory);

            if (inputQueueAddress == null)
            {
                var transport = new AzureServiceBusTransport(ConnectionString, null, consoleLoggerFactory, asyncTaskFactory);

                transport.Initialize();

                return(transport);
            }

            return(_queuesToDelete.GetOrAdd(inputQueueAddress, () =>
            {
                var transport = new BasicAzureServiceBusTransport(ConnectionString, inputQueueAddress, consoleLoggerFactory, asyncTaskFactory);

                transport.PurgeInputQueue();

                transport.Initialize();

                return transport;
            }));
        }
コード例 #10
0
        static SqlServerSubscriptionStorage GetStorage(bool createCustomSchema)
        {
            SqlTestHelper.DropTable("Subscriptions");

            var loggerFactory      = new ConsoleLoggerFactory(false);
            var connectionProvider = new DbConnectionProvider(SqlTestHelper.ConnectionString, loggerFactory);
            var storage            = new SqlServerSubscriptionStorage(connectionProvider, "Subscriptions", true, loggerFactory);

            if (createCustomSchema)
            {
                var tableName = TableName.Parse("Subscriptions");

                SqlTestHelper.Execute($@"

    CREATE TABLE {tableName.QualifiedName} (
	    [topic] [nvarchar](350) NOT NULL,
	    [address] [nvarchar](50) NOT NULL,
        CONSTRAINT [PK_{tableName.Schema}_{tableName.Name}] PRIMARY KEY CLUSTERED 
        (
	        [topic] ASC,
	        [address] ASC
        )
    )

");
            }
            else
            {
                storage.EnsureTableIsCreated();
            }

            storage.Initialize();

            return(storage);
        }
コード例 #11
0
    public async Task Dispose_WhenAutoDeleteQueueEnabled_DropsInputQueue()
    {
        var consoleLoggerFactory = new ConsoleLoggerFactory(false);
        var connectionProvider   = new DbConnectionProvider(SqlTestHelper.ConnectionString, consoleLoggerFactory);

        const string queueName = "input";

        var options = new SqlServerTransportOptions(SqlTestHelper.ConnectionString);

        var activator = Using(new BuiltinHandlerActivator());

        Configure.With(activator)
        .Logging(l => l.Use(consoleLoggerFactory))
        .Transport(t => t.UseSqlServer(options, queueName).SetAutoDeleteQueue(true))
        .Start();

        using (var connection = await connectionProvider.GetConnection())
        {
            Assert.That(connection.GetTableNames().Contains(TableName.Parse(queueName)), Is.True);
        }

        CleanUpDisposables();

        using (var connection = await connectionProvider.GetConnection())
        {
            Assert.That(connection.GetTableNames().Contains(TableName.Parse(queueName)), Is.False);
        }
    }
コード例 #12
0
        public static AmazonSqsTransport CreateTransport(string inputQueueAddress, TimeSpan peeklockDuration, AmazonSQSTransportOptions options = null)
        {
            var connectionInfo  = ConnectionInfo;
            var amazonSqsConfig = new AmazonSQSConfig {
                RegionEndpoint = connectionInfo.RegionEndpoint
            };

            var consoleLoggerFactory = new ConsoleLoggerFactory(false);
            var credentials          = new BasicAWSCredentials(connectionInfo.AccessKeyId, connectionInfo.SecretAccessKey);

            options ??= new AmazonSQSTransportOptions();

            options.ClientFactory = () => new AmazonSQSClient(credentials, amazonSqsConfig);

            var transport = new AmazonSqsTransport(
                inputQueueAddress,
                consoleLoggerFactory,
                new TplAsyncTaskFactory(consoleLoggerFactory),
                options,
                new DefaultRebusTime()
                );

            transport.Initialize(peeklockDuration);
            transport.Purge();
            return(transport);
        }
コード例 #13
0
ファイル: Logger.cs プロジェクト: ni28/EloquentObjects
 static Logger()
 {
     #if DEBUG
     Factory = new ConsoleLoggerFactory();
     #else
     Factory = new SilentLoggerFactory();
     #endif
 }
コード例 #14
0
        public IDataBusStorage Create()
        {
            var consoleLoggerFactory = new ConsoleLoggerFactory(false);
            var storage = new OracleDataBusStorage(OracleTestHelper.ConnectionHelper, "databus", consoleLoggerFactory, _fakeRebusTime);

            storage.EnsureTableIsCreated();
            return(storage);
        }
コード例 #15
0
        static void PurgeQueue(string queueName)
        {
            var consoleLoggerFactory = new ConsoleLoggerFactory(false);

            new AmazonSqsTransport(queueName, AmazonSqsTransportFactory.ConnectionInfo.AccessKeyId, AmazonSqsTransportFactory.ConnectionInfo.SecretAccessKey,
                                   RegionEndpoint.GetBySystemName(AmazonSqsTransportFactory.ConnectionInfo.RegionEndpoint), consoleLoggerFactory,
                                   new TplAsyncTaskFactory(consoleLoggerFactory)).Purge();
        }
コード例 #16
0
        public IDataBusStorage Create()
        {
            var consoleLoggerFactory = new ConsoleLoggerFactory(false);
            var connectionProvider   = new DbConnectionProvider(MySqlTestHelper.ConnectionString, consoleLoggerFactory);
            var mySqlDataBusStorage  = new MySqlDataBusStorage(connectionProvider, "databus", true, consoleLoggerFactory, _fakeRebusTime, 240);

            mySqlDataBusStorage.Initialize();
            return(mySqlDataBusStorage);
        }
        public static void PurgeQueue(string queueName)
        {
            var consoleLoggerFactory = new ConsoleLoggerFactory(false);

            var transport = ActiveMqTransportFactory.CreateTransport(queueName);

            transport.Delete().RunSync();
            transport.CreateQueue();
        }
コード例 #18
0
        static void PurgeQueue(string queueName)
        {
            var consoleLoggerFactory = new ConsoleLoggerFactory(false);
            var asyncTaskFactory     = new TplAsyncTaskFactory(consoleLoggerFactory);
            var connectionString     = StandardAzureServiceBusTransportFactory.ConnectionString;

            new AzureServiceBusTransport(connectionString, queueName, consoleLoggerFactory, asyncTaskFactory)
            .PurgeInputQueue();
        }
コード例 #19
0
        public void CreateSqlServerLoggerTest()
        {
            var logger = new SeriLogger(new Mock <ApplicationLoggerSettings>().Object);
            var config = logger.ConfigureSerilog();

            var result = ConsoleLoggerFactory.CreateLogger(config);

            Assert.NotNull(result);
        }
コード例 #20
0
        public IDataBusStorage Create()
        {
            var consoleLoggerFactory    = new ConsoleLoggerFactory(false);
            var connectionProvider      = new DbConnectionProvider(SqlTestHelper.ConnectionString, consoleLoggerFactory);
            var sqlServerDataBusStorage = new SqlServerDataBusStorage(connectionProvider, "databus", true, consoleLoggerFactory, 240);

            sqlServerDataBusStorage.Initialize();
            return(sqlServerDataBusStorage);
        }
コード例 #21
0
        public ITimeoutManager Create()
        {
            var consoleLoggerFactory = new ConsoleLoggerFactory(true);
            var connectionProvider   = new DbConnectionProvider(SqlTestHelper.ConnectionString, consoleLoggerFactory);
            var timeoutManager       = new SqlServerTimeoutManager(connectionProvider, TableName, consoleLoggerFactory);

            timeoutManager.EnsureTableIsCreated();

            return(timeoutManager);
        }
コード例 #22
0
        public ISubscriptionStorage Create()
        {
            var consoleLoggerFactory = new ConsoleLoggerFactory(true);
            var connectionProvider   = new DbConnectionProvider(SqlTestHelper.ConnectionString, consoleLoggerFactory);
            var storage = new SqlServerSubscriptionStorage(connectionProvider, TableName, true, consoleLoggerFactory);

            storage.EnsureTableIsCreated();

            return(storage);
        }
コード例 #23
0
        public TestIdempotentMessageStorage()
        {
            MySqlTestHelper.DropTableIfExists(_tableName).Wait();
            var consoleLoggerFactory = new ConsoleLoggerFactory(false);
            var connectionHelper     = new MySqlConnectionHelper(MySqlTestHelper.ConnectionString);

            _messageStorage = new MySqlMessageStorage(connectionHelper, _tableName, consoleLoggerFactory);
            _messageStorage.EnsureTablesAreCreated().Wait();
            Using(_messageStorage);
        }
コード例 #24
0
        public ISagaStorage GetSagaStorage()
        {
            var consoleLoggerFactory = new ConsoleLoggerFactory(true);
            var connectionProvider   = new DbConnectionProvider(SqlTestHelper.ConnectionString, consoleLoggerFactory);
            var storage = new SqlServerSagaStorage(connectionProvider, DataTableName, IndexTableName, consoleLoggerFactory);

            storage.EnsureTablesAreCreated();

            return(storage);
        }
コード例 #25
0
            public ConsoleLogger(Type type, LoggingColors loggingColors, ConsoleLoggerFactory factory, bool showTimestamps)
            {
                _type          = type;
                _loggingColors = loggingColors;
                _factory       = factory;

                _logLineFormatString = showTimestamps
                    ? "[{2}] {0} {1} ({3}): {4}"
                    : "[{2}] {1} ({3}): {4}";
            }
コード例 #26
0
        public void LoggerFactory()
        {
            //---------------Set up test pack-------------------
            IHabaneroLoggerFactory loggerFactory = new ConsoleLoggerFactory();

            //---------------Execute Test ----------------------
            GlobalRegistry.LoggerFactory = loggerFactory;
            //---------------Test Result -----------------------
            Assert.AreSame(loggerFactory, GlobalRegistry.LoggerFactory);
        }
コード例 #27
0
        protected override void SetUp()
        {
            var loggerFactory = new ConsoleLoggerFactory(false);

            errorQueueTransport = new AzureServiceBusTransport(AsbTestConfig.ConnectionString, "error", loggerFactory, new TplAsyncTaskFactory(loggerFactory), new DefaultNameFormatter());

            Using(errorQueueTransport);

            errorQueueTransport.Initialize();
            errorQueueTransport.PurgeInputQueue();
        }
コード例 #28
0
        public ISagaSnapshotStorage Create()
        {
            var consoleLoggerFactory = new ConsoleLoggerFactory(true);
            var connectionProvider   = new DbConnectionProvider(SqlTestHelper.ConnectionString, consoleLoggerFactory);

            var snapperino = new SqlServerSagaSnapshotStorage(connectionProvider, TableName, consoleLoggerFactory);

            snapperino.EnsureTableIsCreated();

            return(snapperino);
        }
コード例 #29
0
        static void PurgeQueue(string queueName)
        {
            var consoleLoggerFactory = new ConsoleLoggerFactory(false);
            var asyncTaskFactory     = new TplAsyncTaskFactory(consoleLoggerFactory);
            var connectionString     = AsbTestConfig.ConnectionString;

            using (var transport = new AzureServiceBusTransport(connectionString, queueName, consoleLoggerFactory, asyncTaskFactory, new DefaultNameFormatter()))
            {
                transport.PurgeInputQueue();
            }
        }
コード例 #30
0
        protected override void SetUp()
        {
            var loggerFactory      = new ConsoleLoggerFactory(false);
            var connectionProvider = new DbConnectionProvider(SqlTestHelper.ConnectionString, loggerFactory);

            var tableName = TestConfig.QueueName("data");

            SqlTestHelper.DropTable(tableName);

            _storage = new SqlServerDataBusStorage(connectionProvider, tableName, true, loggerFactory);
            _storage.Initialize();
        }