public async Task ValidateDataFilesForUpload_MetadataFileNotCsv() { var(subjectService, fileTypeService) = Mocks(); await using (var context = InMemoryApplicationDbContext()) { var service = new FileUploadsValidatorService(subjectService.Object, fileTypeService.Object, context); var dataFile = CreateSingleLineFormFile("test.csv", "test.csv"); var metaFile = CreateSingleLineFormFile("test.meta.csv", "test.meta.csv"); fileTypeService .Setup(s => s.HasMatchingMimeType(dataFile, It.IsAny <IEnumerable <Regex> >())) .ReturnsAsync(() => true); fileTypeService .Setup(s => s.HasMatchingMimeType(metaFile, It.IsAny <IEnumerable <Regex> >())) .ReturnsAsync(() => false); fileTypeService .Setup(s => s.HasMatchingEncodingType(dataFile, It.IsAny <IEnumerable <string> >())) .Returns(() => true); fileTypeService .Setup(s => s.HasMatchingEncodingType(metaFile, It.IsAny <IEnumerable <string> >())) .Returns(() => true); var result = await service.ValidateDataFilesForUpload(Guid.NewGuid(), dataFile, metaFile); Assert.True(result.IsLeft); AssertValidationProblem(result.Left, MetaFileMustBeCsvFile); } }
public async Task ValidateFileForUpload_ExceptionThrownForDataFileType() { var(subjectService, fileTypeService) = Mocks(); var service = new FileUploadsValidatorService(subjectService.Object, fileTypeService.Object, null); var file = CreateFormFile("test.csv", "test.csv"); await Assert.ThrowsAsync <ArgumentException>(() => service.ValidateFileForUpload(file, FileType.Data)); }
public async Task ValidateFileForUpload_FileCannotBeEmpty() { var(subjectService, fileTypeService) = Mocks(); var service = new FileUploadsValidatorService(subjectService.Object, fileTypeService.Object, null); var file = CreateFormFile("test.csv", "test.csv"); var result = await service.ValidateFileForUpload(file, Ancillary); Assert.True(result.IsLeft); AssertValidationProblem(result.Left, FileCannotBeEmpty); }
public async Task ValidateSubjectName_SubjectNameContainsSpecialCharacters() { var(subjectService, fileTypeService) = Mocks(); await using (var context = InMemoryApplicationDbContext()) { var service = new FileUploadsValidatorService(subjectService.Object, fileTypeService.Object, context); var result = await service.ValidateSubjectName(Guid.NewGuid(), "Subject & Title"); Assert.True(result.IsLeft); AssertValidationProblem(result.Left, SubjectTitleCannotContainSpecialCharacters); } }
public async Task ValidateFileForUpload_FileTypeIsValid() { var(subjectService, fileTypeService) = Mocks(); var service = new FileUploadsValidatorService(subjectService.Object, fileTypeService.Object, null); var file = CreateSingleLineFormFile("test.csv", "test.csv"); fileTypeService .Setup(s => s.HasMatchingMimeType(file, It.IsAny <IEnumerable <Regex> >())) .ReturnsAsync(() => true); var result = await service.ValidateFileForUpload(file, Ancillary); Assert.True(result.IsRight); }
public async Task ValidateDataFilesForUpload_MetadataFileIsEmpty() { var(subjectService, fileTypeService) = Mocks(); await using (var context = InMemoryApplicationDbContext()) { var service = new FileUploadsValidatorService(subjectService.Object, fileTypeService.Object, context); var dataFile = CreateSingleLineFormFile("test.csv", "test.csv"); var metaFile = CreateFormFile("test.meta.csv", "test.meta.csv"); var result = await service.ValidateDataFilesForUpload(Guid.NewGuid(), dataFile, metaFile); Assert.True(result.IsLeft); AssertValidationProblem(result.Left, MetadataFileCannotBeEmpty); } }
public async Task ValidateSubjectName_SubjectNameNotUnique() { var(subjectService, fileTypeService) = Mocks(); subjectService.Setup(service => service.Get(It.IsAny <Guid>(), "Subject Title")) .ReturnsAsync(new Subject()); await using (var context = InMemoryApplicationDbContext()) { var service = new FileUploadsValidatorService(subjectService.Object, fileTypeService.Object, context); var result = await service.ValidateSubjectName(Guid.NewGuid(), "Subject Title"); Assert.True(result.IsLeft); AssertValidationProblem(result.Left, SubjectTitleMustBeUnique); } }
public async Task UploadedZippedDatafileIsValid() { var(subjectService, fileTypeService) = Mocks(); await using (var context = InMemoryApplicationDbContext()) { var service = new FileUploadsValidatorService(subjectService.Object, fileTypeService.Object, context); var archiveFile = GetArchiveFile("data-zip-valid.zip"); fileTypeService .Setup(s => s.HasMatchingMimeType(It.IsAny <Stream>(), It.IsAny <IEnumerable <Regex> >())) .ReturnsAsync(() => true); var result = await service.ValidateDataArchiveEntriesForUpload(Guid.NewGuid(), archiveFile); Assert.True(result.IsRight); } }