예제 #1
0
        public async Task ProcessMessageAsync_BodyContextIsNull_Nack()
        {
            var receivedMessage = new TaskCreatedEventBuilder().Build().ToMessage();

            await _processor.ProcessMessageAsync(receivedMessage, CancellationToken.None);

            Mock.Get(receivedMessage).Verify(m => m.Nack(), Times.Once);
        }
예제 #2
0
        public async Task ProcessMessageAsync_SavesUserAction_ObjectType()
        {
            var taskCreateEvent = new TaskCreatedEventBuilder().WithContext().WithTaskEntityDto().Build();

            await _processor.ProcessMessageAsync(taskCreateEvent.ToMessage(), CancellationToken.None);

            Assert.Equal(ObjectType.Task, SavedUserAction.ObjectType);
        }
예제 #3
0
        public async Task ProcessMessageAsync_FilledBody_Ack()
        {
            var receivedMessage = new TaskCreatedEventBuilder()
                                  .WithContext(new EventContextBuilder().WithWebContext())
                                  .WithTaskEntityDto()
                                  .Build().ToMessage();

            await _processor.ProcessMessageAsync(receivedMessage, CancellationToken.None);

            Mock.Get(receivedMessage).Verify(m => m.Ack(), Times.Once);
        }
예제 #4
0
        public async Task ProcessMessageAsync_SavesUserAction_ObjectGuid()
        {
            var taskCreateEvent = new TaskCreatedEventBuilder()
                                  .WithContext()
                                  .WithTaskEntityDto(new TaskEntityDtoBuilder().WithGuid())
                                  .Build();

            await _processor.ProcessMessageAsync(taskCreateEvent.ToMessage(), CancellationToken.None);

            Assert.Equal(taskCreateEvent.NewTaskEntity.Attributes.TaskGuid, SavedUserAction.ObjectGuid);
        }
예제 #5
0
        public async Task ProcessMessageAsync_SavesUserAction_UserId()
        {
            var taskCreateEvent = new TaskCreatedEventBuilder()
                                  .WithTaskEntityDto(new TaskEntityDtoBuilder().WithCreatorId(7))
                                  .WithContext()
                                  .Build();

            await _processor.ProcessMessageAsync(taskCreateEvent.ToMessage(), CancellationToken.None);

            Assert.Equal(taskCreateEvent.NewTaskEntity.CreatorId, SavedUserAction.UserId);
        }
예제 #6
0
        public async Task ProcessMessageAsync_IosClient_DoesNotSaveUserAction()
        {
            var message = new TaskCreatedEventBuilder()
                          .WithContext(new EventContextBuilder().WithWebContext().WithClientType(ClientType.iPhoneApplication))
                          .Build()
                          .ToMessage();

            await _processor.ProcessMessageAsync(message, CancellationToken.None);

            UserActionManagerMock.Verify(m => m.SaveUserActionAsync(It.IsAny <UserAction>()), Times.Never);
            Mock.Get(message).Verify(m => m.Ack(), Times.Once);
        }
예제 #7
0
        public async Task ProcessMessageAsync_SavesUserAction_ActionDate()
        {
            var taskCreateEvent = new TaskCreatedEventBuilder()
                                  .WithTaskEntityDto()
                                  .WithContext(new EventContextBuilder()
                                               .WithTimeStamp(new DateTime(2011, 11, 11, 11, 11, 11)))
                                  .Build();

            await _processor.ProcessMessageAsync(taskCreateEvent.ToMessage(), CancellationToken.None);

            Assert.Equal(taskCreateEvent.Context.Timestamp, SavedUserAction.ActionDateTimeUtc);
        }
예제 #8
0
        public async Task ProcessMessageAsync_WebClient_SavesUserAction()
        {
            var message = new TaskCreatedEventBuilder()
                          .WithContext(new EventContextBuilder().WithWebContext().WithClientType(ClientType.DesktopBrowser))
                          .WithTaskEntityDto()
                          .Build()
                          .ToMessage();

            await _processor.ProcessMessageAsync(message, CancellationToken.None);

            UserActionManagerMock.Verify(m => m.SaveUserActionAsync(It.IsAny <UserAction>()), Times.Once);
            Mock.Get(message).Verify(m => m.Ack(), Times.Once);
        }
예제 #9
0
        public async Task ProcessMessageAsync_SavesUserAction_InitiatorType()
        {
            const InitiatorType initiatorType = InitiatorType.Moderator;
            var taskCreateEvent = new TaskCreatedEventBuilder()
                                  .WithTaskEntityDto()
                                  .WithContext(new EventContextBuilder()
                                               .WithInitiator(new OperationInitiatorBuilder()
                                                              .WithInitiatorType(initiatorType)))
                                  .Build();

            await _processor.ProcessMessageAsync(taskCreateEvent.ToMessage(), CancellationToken.None);

            Assert.Equal(initiatorType, SavedUserAction.InitiatorType);
        }
예제 #10
0
        public async Task ProcessMessageAsync_SavesUserAction_LingeringHash()
        {
            const long lingeringHash = 42;

            var taskCreateEvent = new TaskCreatedEventBuilder()
                                  .WithTaskEntityDto()
                                  .WithContext(new EventContextBuilder()
                                               .WithWebContext(new WebContextBuilder()
                                                               .WithLingeringAttributionDataHash(lingeringHash)))
                                  .Build();

            await _processor.ProcessMessageAsync(taskCreateEvent.ToMessage(), CancellationToken.None);

            Assert.Equal(lingeringHash, SavedUserAction.LingeringHash);
        }
예제 #11
0
        public async Task ProcessMessageAsync_SavesUserAction_ChannelAttributesId()
        {
            const long expectedChannelAttributesId = 42;

            var taskCreateEvent = new TaskCreatedEventBuilder()
                                  .WithTaskEntityDto()
                                  .WithContext(new EventContextBuilder()
                                               .WithWebContext(new WebContextBuilder()
                                                               .WithAttributionDataHash(423)))
                                  .Build();

            SetupChannelAttributesManagerMock(taskCreateEvent.Context.WebContext.AttributionDataHash, expectedChannelAttributesId);

            await _processor.ProcessMessageAsync(taskCreateEvent.ToMessage(), CancellationToken.None);

            Assert.Equal(expectedChannelAttributesId, SavedUserAction.ChannelAttributesId);
        }