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)))); } }
private static bool Equals(DalDocument doc1, DalDocument doc2) { bool equals = ((doc1.Id == doc2.Id) && (doc1.Name == doc2.Name) && (doc1.SizeInBytes == doc2.SizeInBytes) ); return(equals); }