예제 #1
0
            public async Task SavesMessageAndEvent(bool eventIsActive)
            {
                var entity = new AddStatusEventManualChangeEntity("path", ComponentStatus.Up, "message", eventIsActive)
                {
                    Timestamp = new DateTimeOffset(2018, 8, 21, 0, 0, 0, TimeSpan.Zero)
                };

                var time        = entity.Timestamp.UtcDateTime;
                var eventRowKey = EventEntity.GetRowKey(entity.EventAffectedComponentPath, time);

                _table.Setup(x => x.InsertAsync(
                                 It.Is <MessageEntity>(messageEntity =>
                                                       messageEntity.PartitionKey == MessageEntity.DefaultPartitionKey &&
                                                       messageEntity.RowKey == MessageEntity.GetRowKey(eventRowKey, time) &&
                                                       messageEntity.ParentRowKey == eventRowKey &&
                                                       messageEntity.Time == time &&
                                                       messageEntity.Contents == entity.MessageContents
                                                       )))
                .Returns(Task.CompletedTask)
                .Verifiable();

                _table.Setup(x => x.InsertAsync(
                                 It.Is <EventEntity>(eventEntity =>
                                                     eventEntity.PartitionKey == EventEntity.DefaultPartitionKey &&
                                                     eventEntity.RowKey == eventRowKey &&
                                                     eventEntity.AffectedComponentPath == entity.EventAffectedComponentPath &&
                                                     eventEntity.AffectedComponentStatus == entity.EventAffectedComponentStatus &&
                                                     eventEntity.StartTime == time &&
                                                     eventEntity.EndTime == (entity.EventIsActive ? (DateTime?)null : time)
                                                     )))
                .Returns(Task.CompletedTask)
                .Verifiable();

                await _handler.Handle(entity);

                _table.Verify();
            }
예제 #2
0
        public Task <ActionResult> CreateNewEvent(CreateStatusEvent model)
        {
            var entity = new AddStatusEventManualChangeEntity(model.AffectedComponentPath, model.AffectedComponentStatus, model.Message, model.IsActive);

            return(RunUpdateStatusTask(entity));
        }