コード例 #1
0
ファイル: DbCleanControllerTest.cs プロジェクト: abacb/server
        /// <summary>
        /// DIを実行する
        /// </summary>
        /// <param name="appSettings">アプリケーション設定を上書きする場合は指定する</param>
        /// <param name="testLogs">ログの格納先</param>
        /// <param name="exceptionType">DbCleanerServiceのモックに例外をスローさせる場合そのタイプを指定する。DbCleanerServiceのモックを使用しない場合はnullを指定する</param>
        private void DependencyInjection(Dictionary <string, string> appSettings = null, List <TestLog> testLogs = null, Type exceptionType = null)
        {
            var builder = new TestDiProviderBuilder <OperationAppSettings>(FunctionsHostBuilderExtend.AddUtility);

            builder.ServiceCollection.AddTransient <DbCleanController>();
            if (exceptionType != null)
            {
                Exception exception = Activator.CreateInstance(exceptionType) as Exception;
                builder.ServiceCollection.AddTransient <Rms.Server.Core.Service.Services.ICleanDbService>(x => new ErrorCleanDbService(exception));
            }

            builder.AddConfigures(appSettings);

            Mock <DateTimeProvider> timeProviderMock = new Mock <DateTimeProvider>();

            timeProviderMock.SetupGet(tp => tp.UtcNow).Returns(TestTime);
            builder.ServiceCollection.AddSingleton <ITimeProvider>(timeProviderMock.Object);

            if (testLogs != null)
            {
                builder.ServiceCollection.AddSingleton <ILogger <CleanDbService> >(new TestLogger <CleanDbService>(testLogs));
            }

            ServiceProvider provider = builder.Build();

            settings = provider.GetService <OperationAppSettings>() as OperationAppSettings;
            target   = provider.GetService <DbCleanController>();
        }
コード例 #2
0
        /// <summary>
        /// DIを実行する
        /// </summary>
        /// <param name="appSettings">アプリケーション設定を上書きする場合は指定する</param>
        /// <param name="testLogs">ログの格納先</param>
        /// <param name="testMails">送信したメール情報を格納するリスト</param>
        /// <param name="mockResponseCode">SendMailメソッドが返却するHTTPステータスコード</param>
        /// <param name="mockResponseException">SendMailメソッドが返却するException</param>
        private void DependencyInjection(Dictionary <string, string> appSettings = null, List <TestLog> testLogs = null, List <MailInfo> testMails = null, HttpStatusCode mockResponseCode = HttpStatusCode.Accepted, Exception mockResponseException = null)
        {
            var builder = new TestDiProviderBuilder <OperationAppSettings>(FunctionsHostBuilderExtend.AddUtility);

            builder.ServiceCollection.AddTransient <MailSenderController>();
            builder.ServiceCollection.AddTransient <FailureBlob>();
            builder.AddConfigures(appSettings);

            Mock <DateTimeProvider> timeProviderMock = new Mock <DateTimeProvider>();

            timeProviderMock.SetupGet(tp => tp.UtcNow).Returns(TestTime);
            builder.ServiceCollection.AddSingleton <ITimeProvider>(timeProviderMock.Object);

            if (testLogs != null)
            {
                builder.ServiceCollection.AddSingleton <ILogger <MailSenderService> >(new TestLogger <MailSenderService>(testLogs));
            }

            if (testMails != null)
            {
                builder.ServiceCollection.AddTransient <IMailRepository>(x => new TestMailRepository(testMails, mockResponseCode, mockResponseException));
            }

            ServiceProvider provider = builder.Build();

            failureBlob = provider.GetService <FailureBlob>();
            settings    = provider.GetService <AppSettings>() as OperationAppSettings;
            target      = provider.GetService <MailSenderController>();
        }
コード例 #3
0
ファイル: QueuePolly.cs プロジェクト: abacb/server
 /// <summary>
 /// コンストラクタ
 /// </summary>
 /// <param name="settings">アプリケーション設定</param>
 public QueuePolly(OperationAppSettings settings)
 {
     this.settings    = settings;
     this.retryPolicy =
         Policy.Handle <Exception>()
         .WaitAndRetry(settings.MailQueueAccessMaxAttempts, retryCount => TimeSpan.FromSeconds(retryCount * settings.MailQueueDelayDeltaSeconds));
 }
コード例 #4
0
ファイル: AlarmRegisterService.cs プロジェクト: abacb/server
        /// <summary>
        /// コンストラクタ
        /// </summary>
        /// <param name="settings">設定</param>
        /// <param name="logger">ロガー</param>
        /// <param name="timeProvider">DateTimeの提供元</param>
        /// <param name="dtAlarmRepository">アラームリポジトリ</param>
        /// <param name="dtEquipmentRepository">機器リポジトリ</param>
        /// <param name="dtAlarmConfigRepository">アラーム設定リポジトリ</param>
        /// <param name="queueRepository">Queueリポジトリ</param>
        /// <param name="failureRepository">Failureストレージリポジトリ</param>
        public AlarmRegisterService(
            OperationAppSettings settings,
            ILogger <AlarmRegisterService> logger,
            ITimeProvider timeProvider,
            IDtAlarmRepository dtAlarmRepository,
            IDtEquipmentRepository dtEquipmentRepository,
            IDtAlarmConfigRepository dtAlarmConfigRepository,
            IQueueRepository queueRepository,
            IFailureRepository failureRepository)
        {
            Assert.IfNull(settings);
            Assert.IfNull(logger);
            Assert.IfNull(timeProvider);
            Assert.IfNull(dtAlarmRepository);
            Assert.IfNull(dtEquipmentRepository);
            Assert.IfNull(dtAlarmConfigRepository);
            Assert.IfNull(queueRepository);
            Assert.IfNull(failureRepository);

            _settings                = settings;
            _logger                  = logger;
            _timeProvider            = timeProvider;
            _dtAlarmRepository       = dtAlarmRepository;
            _dtEquipmentRepository   = dtEquipmentRepository;
            _dtAlarmConfigRepository = dtAlarmConfigRepository;
            _queueRepository         = queueRepository;
            _failureRepository       = failureRepository;
        }
コード例 #5
0
ファイル: MailSenderController.cs プロジェクト: abacb/server
        /// <summary>
        /// コンストラクタ
        /// </summary>
        /// <param name="settings">設定</param>
        /// <param name="service">MailSenderサービスクラス</param>
        public MailSenderController(OperationAppSettings settings, IMailSenderService service)
        {
            Assert.IfNull(settings);
            Assert.IfNull(service);

            _settings = settings;
            _service  = service;
        }
コード例 #6
0
        /// <summary>
        /// コンストラクタ
        /// </summary>
        /// <param name="settings">設定</param>
        /// <param name="service">AlarmRegisterサービスクラス</param>
        public AlarmRegisterController(OperationAppSettings settings, IAlarmRegisterService service)
        {
            Assert.IfNull(settings);
            Assert.IfNull(service);

            _settings = settings;
            _service  = service;
        }
コード例 #7
0
ファイル: SendGridPolly.cs プロジェクト: abacb/server
        /// <summary>
        /// コンストラクタ
        /// </summary>
        /// <param name="settings">アプリケーション設定</param>
        public SendGridPolly(OperationAppSettings settings)
        {
            this.settings = settings;

            asyncRetryPolicy =
                Policy.Handle <Exception>()
                .OrResult <Response>(x => IsNeedRetry(x))
                .WaitAndRetryAsync(settings.SendGridAccessMaxAttempts, retryCount => TimeSpan.FromSeconds(retryCount * settings.SendGridDelayDeltaSeconds));
        }
コード例 #8
0
ファイル: MailRepository.cs プロジェクト: abacb/server
        /// <summary>
        /// コンストラクタ
        /// </summary>
        /// <param name="logger">ロガー</param>
        /// <param name="sendGridPolly">SendGrid接続用のPolly</param>
        /// <param name="appSettings">アプリケーション設定</param>
        public MailRepository(ILogger <MailRepository> logger, SendGridPolly sendGridPolly, OperationAppSettings appSettings)
        {
            Assert.IfNull(logger);
            Assert.IfNull(sendGridPolly);
            Assert.IfNull(appSettings);

            _logger        = logger;
            _sendGridPolly = sendGridPolly;
            _appSettings   = appSettings;
        }
コード例 #9
0
        /// <summary>
        /// コンストラクタ
        /// </summary>
        /// <param name="logger">ロガー</param>
        /// <param name="queuePolly">キュー接続用のPolly</param>
        /// <param name="appSettings">アプリケーション設定</param>
        public QueueRepository(ILogger <QueueRepository> logger, QueuePolly queuePolly, OperationAppSettings appSettings)
        {
            Assert.IfNull(logger);
            Assert.IfNull(queuePolly);
            Assert.IfNull(appSettings);

            _logger      = logger;
            _queuePolly  = queuePolly;
            _appSettings = appSettings;
        }
コード例 #10
0
        /// <summary>
        /// コンストラクタ
        /// </summary>
        /// <param name="settings">設定</param>
        /// <param name="logger">ロガー</param>
        /// <param name="timeProvider">DateTimeの提供元</param>
        /// <param name="mailRepository">メールリポジトリ</param>
        /// <param name="failureRepository">Failureストレージリポジトリ</param>
        public MailSenderService(
            OperationAppSettings settings,
            ILogger <MailSenderService> logger,
            ITimeProvider timeProvider,
            IMailRepository mailRepository,
            IFailureRepository failureRepository)
        {
            Assert.IfNull(settings);
            Assert.IfNull(logger);
            Assert.IfNull(timeProvider);
            Assert.IfNull(mailRepository);
            Assert.IfNull(failureRepository);

            _settings          = settings;
            _logger            = logger;
            _timeProvider      = timeProvider;
            _mailRepository    = mailRepository;
            _failureRepository = failureRepository;
        }
コード例 #11
0
        /// <summary>
        /// DIを実行する
        /// </summary>
        /// <param name="appSettings">アプリケーション設定を上書きする場合は指定する</param>
        /// <param name="testLogs">ログの格納先</param>
        private void DependencyInjection(Dictionary <string, string> appSettings = null, List <TestLog> testLogs = null)
        {
            var builder = new TestDiProviderBuilder <OperationAppSettings>(FunctionsHostBuilderExtend.AddUtility);

            builder.ServiceCollection.AddTransient <AlarmRegisterController>();
            builder.ServiceCollection.AddTransient <FailureBlob>();
            builder.AddConfigures(appSettings);

            Mock <DateTimeProvider> timeProviderMock = new Mock <DateTimeProvider>();

            timeProviderMock.SetupGet(tp => tp.UtcNow).Returns(TestTime);
            builder.ServiceCollection.AddSingleton <ITimeProvider>(timeProviderMock.Object);

            if (testLogs != null)
            {
                builder.ServiceCollection.AddSingleton <ILogger <AlarmRegisterService> >(new TestLogger <AlarmRegisterService>(testLogs));
            }

            ServiceProvider provider = builder.Build();

            failureBlob = provider.GetService <FailureBlob>();
            settings    = provider.GetService <AppSettings>() as OperationAppSettings;
            target      = provider.GetService <AlarmRegisterController>();
        }