public async Task AddAsync_GivenValidInput_AppendsDocumentToList( [Frozen] Mock <IDocumentRepository> documentRepoMock, [Frozen] Mock <IDocumentListRepository> documentListRepoMock, DocumentService sut, string userFileName, string mimeType, ByteSize size, string newDocumentId, [Frozen] Mock <IList <DalDocument> > existingDocuments, MemoryStream content) { using (content) { // Arrange documentRepoMock.Setup(repo => repo.AddAsync(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <Stream>())) .ReturnsAsync(newDocumentId); documentListRepoMock.Setup(repo => repo.GetAsync()) .ReturnsAsync(existingDocuments.Object); // Act await sut.AddAsync(userFileName, mimeType, size, content); // Verify DalDocument expectedDocument = new DalDocument { Id = newDocumentId, Name = userFileName, SizeInBytes = size.Bytes }; existingDocuments.Verify(list => list.Add(It.Is <DalDocument>(actualDocument => Equals(actualDocument, expectedDocument)))); } }
public async Task AddDocumentTest() { var documentRepositoryMock = new Mock <IDocumentRepository>(); documentRepositoryMock.Setup(p => p.AddAsync(It.IsAny <DocumentEntity>())) .Returns(() => Task.FromResult(0)); var documentContentServiceMock = new Mock <IDocumentContentService>(); var documentCollaboratorServiceMock = new Mock <IDocumentCollaboratorService>(); var documentService = new DocumentService( documentRepositoryMock.Object, documentContentServiceMock.Object, documentCollaboratorServiceMock.Object, MockObjects.GetMapper()); const string userId = "userId"; var dateBefore = DateTime.UtcNow; var document = await documentService.AddAsync(userId); Assert.NotNull(document); Assert.Equal(userId, document.UserId); Assert.Equal("New Document", document.Name); Assert.False(string.IsNullOrEmpty(document.Id)); Assert.True(dateBefore < document.Created); Assert.True(document.Created < DateTime.UtcNow); documentRepositoryMock.Verify(p => p.AddAsync(It.IsAny <DocumentEntity>()), Times.Once); }
public async Task AddAsync_GivenValidInput_CreatesDocument( [Frozen] Mock <IDocumentRepository> documentRepoMock, DocumentService sut, string userFileName, string mimeType, ByteSize size, string newDocumentId, MemoryStream content) { using (content) { // Arrange documentRepoMock.Setup(repo => repo.AddAsync(mimeType, userFileName, content)) .ReturnsAsync(newDocumentId) .Verifiable(); // Act string documentId = await sut.AddAsync(userFileName, mimeType, size, content); // Verify documentRepoMock.Verify(); documentId.Should().Be(documentId); } }