示例#1
0
        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"));
    }