コード例 #1
0
        public DynamoAlarmGeneratorMockery()
        {
            Cloudwatch  = new Mock <IAmazonCloudWatch>();
            AlarmFinder = new Mock <IAlarmFinder>();

            SnsTopicCreator        = new Mock <ISnsTopicCreator>();
            SnsSubscriptionCreator = new Mock <ISnsSubscriptionCreator>();

            TableLoader = new Mock <IResourceSource <TableDescription> >();

            var logger             = new ConsoleAlarmLogger(false);
            var tableNamePopulator = new TableNamePopulator(logger, TableLoader.Object);
            var snsCreator         = new SnsCreator(SnsTopicCreator.Object, SnsSubscriptionCreator.Object);

            var tableAlarmCreator = new TableAlarmCreator(Cloudwatch.Object, AlarmFinder.Object, logger, Mock.Of <ILegacyAlarmTracker>());
            var indexAlarmCreator = new IndexAlarmCreator(Cloudwatch.Object, AlarmFinder.Object, logger, Mock.Of <ILegacyAlarmTracker>());

            AlarmGenerator = new DynamoAlarmGenerator(
                logger,
                tableNamePopulator,
                tableAlarmCreator,
                indexAlarmCreator,
                snsCreator,
                TableLoader.Object);
        }
コード例 #2
0
        public async Task WhenDryRunWriteCapacityAlarmIsNotPut()
        {
            var cloudWatch  = new Mock <IAmazonCloudWatch>();
            var alarmFinder = new Mock <IAlarmFinder>();
            var logger      = new Mock <IAlarmLogger>();

            var tableAlarmCreator = new TableAlarmCreator(
                cloudWatch.Object, alarmFinder.Object, logger.Object);

            var table = MakeTableDescription();

            await tableAlarmCreator.EnsureWriteCapacityAlarm(table, "suffix", 0.52, "testArn", true);

            VerifyCloudwatch.PutMetricAlarmWasNotCalled(cloudWatch);
        }
コード例 #3
0
        public async Task TestBasicReadCapacityAlarmCreation()
        {
            var cloudWatch  = new Mock <IAmazonCloudWatch>();
            var alarmFinder = new Mock <IAlarmFinder>();
            var logger      = new Mock <IAlarmLogger>();

            var tableAlarmCreator = new TableAlarmCreator(
                cloudWatch.Object, alarmFinder.Object, logger.Object);

            var table = MakeTableDescription();

            await tableAlarmCreator.EnsureReadCapacityAlarm(table, "suffix", 0.52, "testArn", false);

            VerifyCloudwatch.PutMetricAlarmWasCalledOnce(cloudWatch);
        }
コード例 #4
0
        public async Task WhenDryRunReadThrottlingAlarmIsNotPut()
        {
            var cloudWatch  = new Mock <IAmazonCloudWatch>();
            var alarmFinder = new Mock <IAlarmFinder>();
            var logger      = new Mock <IAlarmLogger>();

            var tableAlarmCreator = new TableAlarmCreator(
                cloudWatch.Object, alarmFinder.Object, logger.Object, Mock.Of <ILegacyAlarmTracker>());

            var table = MakeTableDescription();

            await tableAlarmCreator.EnsureReadThrottleAlarm(table, "suffix", 10, "testArn", true);

            VerifyCloudwatch.PutMetricAlarmWasNotCalled(cloudWatch);
        }
コード例 #5
0
        public async Task TestBasicWriteThrottlingAlarmCreation()
        {
            var cloudWatch  = new Mock <IAmazonCloudWatch>();
            var alarmFinder = new Mock <IAlarmFinder>();
            var logger      = new Mock <IAlarmLogger>();

            var tableAlarmCreator = new TableAlarmCreator(
                cloudWatch.Object, alarmFinder.Object, logger.Object, Mock.Of <ILegacyAlarmTracker>());

            var table = MakeTableDescription();

            await tableAlarmCreator.EnsureWriteThrottleAlarm(table, "suffix", 10, "testArn", false);

            VerifyCloudwatch.PutMetricAlarmWasCalledOnce(cloudWatch);
        }
コード例 #6
0
        public async Task WhenReadCapacityAlarmExistsAtSameLevelNoAlarmIsCreated()
        {
            var cloudWatch  = new Mock <IAmazonCloudWatch>();
            var alarmFinder = new Mock <IAlarmFinder>();

            VerifyCloudwatch.AlarmFinderFindsThreshold(alarmFinder, 31200, 300, "testArn");

            var logger = new Mock <IAlarmLogger>();

            var tableAlarmCreator = new TableAlarmCreator(
                cloudWatch.Object, alarmFinder.Object, logger.Object);

            var table = MakeTableDescription();

            await tableAlarmCreator.EnsureReadCapacityAlarm(table, "suffix", 0.52, "testArn", false);

            VerifyCloudwatch.PutMetricAlarmWasNotCalled(cloudWatch);
        }
コード例 #7
0
        public async Task WhenWriteCapacityAlarmExistsWithDifferentTargetAlarmIsCreated()
        {
            var cloudWatch  = new Mock <IAmazonCloudWatch>();
            var alarmFinder = new Mock <IAlarmFinder>();

            VerifyCloudwatch.AlarmFinderFindsThreshold(alarmFinder, 31200, 300, "firstTarget");

            var logger = new Mock <IAlarmLogger>();

            var tableAlarmCreator = new TableAlarmCreator(
                cloudWatch.Object, alarmFinder.Object, logger.Object);

            var table = MakeTableDescription();

            await tableAlarmCreator.EnsureReadCapacityAlarm(table, "suffix", 0.52, "secondTarget", false);

            VerifyCloudwatch.PutMetricAlarmWasCalledOnce(cloudWatch);
        }
コード例 #8
0
        public async Task WhenWriteThrottlingAlarmExistsWithDifferentThresholdAlarmIsCreated()
        {
            var cloudWatch  = new Mock <IAmazonCloudWatch>();
            var alarmFinder = new Mock <IAlarmFinder>();

            VerifyCloudwatch.AlarmFinderFindsThreshold(alarmFinder, 101, 300, "testArn");

            var logger = new Mock <IAlarmLogger>();

            var tableAlarmCreator = new TableAlarmCreator(
                cloudWatch.Object, alarmFinder.Object, logger.Object);

            var table = MakeTableDescription();

            await tableAlarmCreator.EnsureWriteThrottleAlarm(table, "suffix", 10, "testArn", false);

            VerifyCloudwatch.PutMetricAlarmWasCalledOnce(cloudWatch);
        }
コード例 #9
0
        public async Task WhenWriteThrottlingAlarmExistsAtSameLevelNoAlarmIsCreated()
        {
            var cloudWatch  = new Mock <IAmazonCloudWatch>();
            var alarmFinder = new Mock <IAlarmFinder>();

            VerifyCloudwatch.AlarmFinderFindsThreshold(alarmFinder, 5, 60, "testArn");

            var logger = new Mock <IAlarmLogger>();

            var tableAlarmCreator = new TableAlarmCreator(
                cloudWatch.Object, alarmFinder.Object, logger.Object, Mock.Of <ILegacyAlarmTracker>());

            var table = MakeTableDescription();

            await tableAlarmCreator.EnsureWriteThrottleAlarm(table, "suffix", 5, "testArn", false);

            VerifyCloudwatch.PutMetricAlarmWasNotCalled(cloudWatch);
        }
コード例 #10
0
        public async Task WhenReadCapacityAlarmExistsWithDifferentThresholdAlarmIsCreated()
        {
            var cloudWatch  = new Mock <IAmazonCloudWatch>();
            var alarmFinder = new Mock <IAlarmFinder>();

            VerifyCloudwatch.AlarmFinderFindsThreshold(alarmFinder, 42, 300, "testArn");

            var logger = new Mock <IAlarmLogger>();

            var tableAlarmCreator = new TableAlarmCreator(
                cloudWatch.Object, alarmFinder.Object, logger.Object, Mock.Of <ILegacyAlarmTracker>());

            var table = MakeTableDescription();

            await tableAlarmCreator.EnsureReadCapacityAlarm(table, "suffix", 0.52, "testArn", false);

            VerifyCloudwatch.PutMetricAlarmWasCalledOnce(cloudWatch);
        }