Esempio n. 1
0
        public Task <ActionResult> EditMessage(EditStatusEventMessage model)
        {
            var startTime = ParseModelDateTime(model.StartTime);
            var timestamp = ParseModelDateTime(model.Timestamp);

            ManualStatusChangeEntity entity;

            if (model.Delete)
            {
                entity = new DeleteStatusMessageManualChangeEntity(
                    model.AffectedComponentPath,
                    startTime,
                    timestamp);
            }
            else
            {
                entity = new EditStatusMessageManualChangeEntity(
                    model.AffectedComponentPath,
                    startTime,
                    timestamp,
                    model.EditMessage);
            }

            return(RunUpdateStatusTask(entity));
        }
            public async Task FailsIfMessageDoesNotExist()
            {
                var entity = new DeleteStatusMessageManualChangeEntity("path", new DateTime(2018, 8, 20), new DateTime(2018, 8, 21));

                _table
                .Setup(x => x.RetrieveAsync <MessageEntity>(It.IsAny <string>()))
                .ReturnsAsync((MessageEntity)null);

                await Assert.ThrowsAsync <ArgumentException>(() => _handler.Handle(entity));
            }
            public async Task DeletesEvent(MessageType type)
            {
                var entity = new DeleteStatusMessageManualChangeEntity("path", new DateTime(2018, 8, 20), new DateTime(2018, 8, 21));

                var eventEntity = new EventEntity(
                    entity.EventAffectedComponentPath,
                    entity.EventStartTime);

                var eventRowKey = eventEntity.RowKey;

                var messageEntity = new MessageEntity(
                    eventEntity,
                    entity.MessageTimestamp,
                    "someContents",
                    type);

                var messageRowKey = messageEntity.RowKey;

                _table
                .Setup(x => x.RetrieveAsync <MessageEntity>(messageRowKey))
                .ReturnsAsync(messageEntity);

                _table
                .Setup(x => x.ReplaceAsync(It.Is <MessageEntity>(
                                               message =>
                                               message.PartitionKey == MessageEntity.DefaultPartitionKey &&
                                               message.RowKey == messageRowKey &&
                                               message.ParentRowKey == eventRowKey &&
                                               message.Time == messageEntity.Time &&
                                               message.Contents == string.Empty &&
                                               message.Type == (int)MessageType.Manual)))
                .Returns(Task.CompletedTask);

                await _handler.Handle(entity);

                _table.Verify();
            }