private static TModel Create <TModel>() where TModel : UploadModelBase, new() { SelectListItem CreateItem(TimeSpan timespan) => new SelectListItem { Value = (DateTime.UtcNow + timespan).ToString("O"), Text = timespan.Humanize() }; SelectListItem CreateMonthItem(int month) => new SelectListItem { Value = CultureInfo.CurrentCulture.Calendar.AddMonths(DateTime.UtcNow, month).ToString("O"), Text = $"{month} months" }; TModel uploadModel = new TModel { FileIdentifier = FileIdentifier.CreateNew(), Expiration = DateTime.UtcNow.AddDays(7), AvailableExpiration = new[] { CreateItem(TimeSpan.FromHours(1)), CreateItem(TimeSpan.FromHours(4)), CreateItem(TimeSpan.FromHours(8)), CreateItem(TimeSpan.FromDays(1)), CreateItem(TimeSpan.FromDays(2)), CreateItem(TimeSpan.FromDays(7)), CreateMonthItem(1), CreateMonthItem(2), CreateMonthItem(3), CreateMonthItem(6), CreateItem(TimeSpan.FromDays(CultureInfo.CurrentCulture.Calendar.GetDaysInYear(DateTime.UtcNow.Year))), } }; return(uploadModel); }
public async Task UploadedFileRepository_MetadataFileMissing_GetFile_ReturnsNull() { // Given IFileStore fileStore = Substitute.For <IFileStore>(); fileStore.GetMetadataFile(Arg.Any <FileIdentifier>()).Returns(new NotFoundFileInfo("_")); // When IUploadedFileRepository testObject = new UploadedFileRepository(fileStore, null, null, FakeLogger.Get <UploadedFileRepository>()); UploadedFile returnedValue = await testObject.GetFile(FileIdentifier.CreateNew()); // Then Assert.That(returnedValue, Is.Null); }
public async Task UploadedFileRepository_Success_ReturnsFileWithMetadata() { // Given IFileStore fileStore = Substitute.For <IFileStore>(); IMetadataReader metadataReader = new MetadataReader(Substitute.For <ILogger <MetadataReader> >()); var metadataString = (new StoredMetadata { OriginalFileName = "TestFile.txt" }).Serialize(); fileStore.GetMetadataFile(Arg.Any <FileIdentifier>()).Returns(new FakeFile(contents: metadataString)); fileStore.GetDataFile(Arg.Any <FileIdentifier>()).Returns(new FakeFile()); // When IUploadedFileRepository testObject = new UploadedFileRepository(fileStore, null, metadataReader, FakeLogger.Get <UploadedFileRepository>()); UploadedFile returnedValue = await testObject.GetFile(FileIdentifier.CreateNew()); // Then Assert.That(returnedValue.Metadata.OriginalFileName, Is.EqualTo("TestFile.txt")); }