Ejemplo n.º 1
0
        public void Should_Remove_Item()
        {
            // Given
            var board           = context.KanbanBoards.Include(x => x.Columns).First();
            var user            = context.AppUsers.FirstOrDefault();
            var handler         = new RemoveItem(repository, CreateAccessServiceMock().Object);
            var column          = board.Columns.Where(x => x.Items.Any()).OrderBy(x => x.Index).First();
            var itemToRemove    = column.Items.First();
            var itemsCount      = column.Items.Count;
            var expectedIndexes = column.Items
                                  .OrderBy(x => x.Index)
                                  .Select(x => x.Index)
                                  .SkipLast(1)
                                  .ToList();

            // When
            handler.HandleAsync(
                new RemoveItem.Command(user.ID, board.ID, itemToRemove.ID)).Wait();

            // Then
            var actualIndexes = column.Items.OrderBy(x => x.Index).Select(x => x.Index);

            Assert.IsFalse(column.Items.Any(x => x.ID == itemToRemove.ID));
            Assert.AreEqual(itemsCount - 1, column.Items.Count);
            CollectionAssert.AreEqual(expectedIndexes, actualIndexes);
        }
Ejemplo n.º 2
0
        public void Should_Throw_Exception_On_Removing_Item_With_No_Access()
        {
            // Given
            var board        = context.KanbanBoards.Include(x => x.Columns).First();
            var user         = context.AppUsers.FirstOrDefault();
            var handler      = new RemoveItem(repository, CreateAccessServiceMock(false, false).Object);
            var column       = board.Columns.Where(x => x.Items.Any()).OrderBy(x => x.Index).First();
            var itemToRemove = column.Items.First();

            // When
            Assert.CatchAsync <ForbiddenException>(
                async() => await handler.HandleAsync(
                    new RemoveItem.Command(user.ID, board.ID, itemToRemove.ID)));
        }