public void GetAllClientDocumentsForCaseTests() { AutoMapperConfig.RegisterMappings(typeof(ClientDocumentViewModel).GetTypeInfo().Assembly); var clientDocumentsList = new List <ClientDocument>() { new ClientDocument() { CaseId = "1", CreatedOn = DateTime.UtcNow, AddedByUser = new ApplicationUser(), }, new ClientDocument() { CaseId = "1", CreatedOn = DateTime.UtcNow, AddedByUser = new ApplicationUser(), }, new ClientDocument() { CaseId = "2", CreatedOn = DateTime.UtcNow, AddedByUser = new ApplicationUser(), }, }; var clientDocumentsMockRepo = new Mock <IDeletableEntityRepository <ClientDocument> >(); clientDocumentsMockRepo.Setup(x => x.AllAsNoTracking()) .Returns(clientDocumentsList.AsQueryable); var clientDocumentService = new ClientDocumentsService(clientDocumentsMockRepo.Object); var result = clientDocumentService.GetAllClientDocumentsForCase("1"); Assert.Equal(2, result.Documents.Count()); }
public async Task CreateAsyncDocumentTests() { AutoMapperConfig.RegisterMappings(typeof(CreateCaseInputViewModel).GetTypeInfo().Assembly); var clientDocumentsList = new List <ClientDocument>(); var clientDocumentsMockRepo = new Mock <IDeletableEntityRepository <ClientDocument> >(); clientDocumentsMockRepo.Setup(x => x.AddAsync(It.IsAny <ClientDocument>())).Callback( (ClientDocument clientDocument) => { clientDocument.Id = Guid.NewGuid().ToString(); clientDocumentsList.Add(clientDocument); }); var file = new Mock <IFormFile>(); string desktopPath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop); // get current number of pictures in the directory so we can compare at the end Directory.CreateDirectory($"{desktopPath}/clientDocuments/"); int filesCountBeginning = Directory.GetFiles( $"{desktopPath}/clientDocuments", "*", SearchOption.TopDirectoryOnly).Length; var sourceImg = File.OpenRead(desktopPath + "/SFA_scheme.png"); var ms = new MemoryStream(); var writer = new StreamWriter(ms); writer.Write(sourceImg); writer.Flush(); ms.Position = 0; var fileName = "Test.png"; file.Setup(f => f.FileName).Returns(fileName).Verifiable(); file.Setup(_ => _.CopyToAsync(It.IsAny <Stream>(), It.IsAny <CancellationToken>())) .Returns((Stream stream, CancellationToken token) => ms.CopyToAsync(stream)) .Verifiable(); UploadClientDocumentViewModel input = new UploadClientDocumentViewModel() { CaseId = "1", Name = "test", Images = new List <IFormFile>() { file.Object }, }; var clientDocumentService = new ClientDocumentsService(clientDocumentsMockRepo.Object); var userId = "NewUserId"; // test Happy path await clientDocumentService.CreateAsync(input, userId, desktopPath); Assert.Single(clientDocumentsList); file.Verify(); int filesCountEnd = Directory.GetFiles( $"{desktopPath}/clientDocuments", "*", SearchOption.TopDirectoryOnly).Length; Assert.Equal(filesCountBeginning + 1, filesCountEnd); // test extensions filter var file2 = new Mock <IFormFile>(); var fileName2 = "Test.pdf"; file2.Setup(f => f.FileName).Returns(fileName2).Verifiable(); UploadClientDocumentViewModel input2 = new UploadClientDocumentViewModel() { CaseId = "1", Name = "test", Images = new List <IFormFile>() { file2.Object }, }; await Assert.ThrowsAsync <Exception>(async() => await clientDocumentService.CreateAsync(input2, userId, desktopPath)); }