示例#1
0
        public async Task LinkingTask_ShouldCreateProjection()
        {
            // Arrange
            using (var connection = this._testInfrastructure.OpenDatabaseConnection())
            {
                // Arrange
                var commandDispatcher   = this._testInfrastructure.DiContainer.GetInstance <IMediator>();
                var taskLinksRepository = new TaskLinksRepository();
                var newTask1            = await this.CreateNewTask();

                var newTask2 = await this.CreateNewTask();

                // Act
                var result = await commandDispatcher.Send(new LinkTaskCommand(newTask1.TaskId, newTask2.TaskId));

                // Assert
                var links = await taskLinksRepository.GetLinksForTaskIdAsync(connection, newTask1.TaskId);

                var links2 = await taskLinksRepository.GetLinksForTaskIdAsync(connection, newTask2.TaskId);

                Assert.That(links.Count, Is.EqualTo(1));
                Assert.That(links2.Count, Is.EqualTo(1));
                Assert.That(links.Single().LinkedTaskId, Is.EqualTo(newTask2.TaskId));
                Assert.That(links2.Single().LinkedTaskId, Is.EqualTo(newTask1.TaskId));
            }
        }
示例#2
0
 public async Task Handle(TaskLinkCreatedEvent notification, CancellationToken cancellationToken)
 {
     using (var connection = this._dbConnectionFactory.OpenConnection())
     {
         var repository = new TaskLinksRepository();
         await repository.CreateNewLinkbetweenTasksAsync(connection, notification.AggregateId,
                                                         notification.LinkToTaskId);
     }
 }