Beispiel #1
0
        public async Task DeleteDocumentAsync_Should_DeleteDocumentAndUpdateAffectedDocumentPositions(
            int documentToDeletePosition, int affectedDocumentsCount)
        {
            // Arrange
            var documentToDelete = _allDocuments[documentToDeletePosition - 1];

            _documentsRepositoryMock
            .Setup(r => r.GetDocumentsAsync())
            .Returns(Task.FromResult(_allDocuments));

            // Act
            await _sut.DeleteDocumentAsync(documentToDelete);

            // Assert
            _documentsRepositoryMock
            .Verify(r => r.DeleteDocumentAsync(documentToDelete.Id, It.Is <Document[]>(
                                                   documents => documents.Length == affectedDocumentsCount &&
                                                   (!documents.Any() || documents.All(x => x.Position == int.Parse(x.Id) - 1)))));

            _contentStorageMock
            .Verify(s => s.DeleteFile(It.Is <string>(name => name == Path.GetFileName(documentToDelete.Location))));
        }