mirror of
https://github.com/jellyfin/jellyfin.git
synced 2025-08-30 23:00:18 -04:00
Merge a couple tests, extract duplicate code
This commit is contained in:
parent
608a91162a
commit
29755c9384
@ -41,10 +41,7 @@ namespace Jellyfin.Providers.Tests.Manager
|
|||||||
[Fact]
|
[Fact]
|
||||||
public void ValidateImages_EmptyItemEmptyProviders_NoChange()
|
public void ValidateImages_EmptyItemEmptyProviders_NoChange()
|
||||||
{
|
{
|
||||||
var itemImageProvider = GetItemImageProvider(null, null);
|
ValidateImages_Test(ImageType.Primary, 0, true, 0, false, 0);
|
||||||
var changed = itemImageProvider.ValidateImages(new Video(), Enumerable.Empty<ILocalImageProvider>(), null);
|
|
||||||
|
|
||||||
Assert.False(changed);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static TheoryData<ImageType, int> GetImageTypesWithCount()
|
private static TheoryData<ImageType, int> GetImageTypesWithCount()
|
||||||
@ -53,7 +50,6 @@ namespace Jellyfin.Providers.Tests.Manager
|
|||||||
{
|
{
|
||||||
// minimal test cases that hit different handling
|
// minimal test cases that hit different handling
|
||||||
{ ImageType.Primary, 1 },
|
{ ImageType.Primary, 1 },
|
||||||
{ ImageType.Backdrop, 1 },
|
|
||||||
{ ImageType.Backdrop, 2 }
|
{ ImageType.Backdrop, 2 }
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -64,43 +60,34 @@ namespace Jellyfin.Providers.Tests.Manager
|
|||||||
[MemberData(nameof(GetImageTypesWithCount))]
|
[MemberData(nameof(GetImageTypesWithCount))]
|
||||||
public void ValidateImages_EmptyItemAndPopulatedProviders_AddsImages(ImageType imageType, int imageCount)
|
public void ValidateImages_EmptyItemAndPopulatedProviders_AddsImages(ImageType imageType, int imageCount)
|
||||||
{
|
{
|
||||||
// Has to exist for querying DateModified time on file, results stored but not checked so not populating
|
ValidateImages_Test(imageType, 0, true, imageCount, true, imageCount);
|
||||||
BaseItem.FileSystem = Mock.Of<IFileSystem>();
|
|
||||||
|
|
||||||
var item = new Video();
|
|
||||||
var imageProvider = GetImageProvider(imageType, imageCount, true);
|
|
||||||
|
|
||||||
var itemImageProvider = GetItemImageProvider(null, null);
|
|
||||||
var changed = itemImageProvider.ValidateImages(item, new[] { imageProvider }, null);
|
|
||||||
|
|
||||||
Assert.True(changed);
|
|
||||||
Assert.Equal(imageCount, item.GetImages(imageType).Count());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[Theory]
|
[Theory]
|
||||||
[MemberData(nameof(GetImageTypesWithCount))]
|
[MemberData(nameof(GetImageTypesWithCount))]
|
||||||
public void ValidateImages_PopulatedItemWithGoodPathsAndEmptyProviders_NoChange(ImageType imageType, int imageCount)
|
public void ValidateImages_PopulatedItemWithGoodPathsAndEmptyProviders_NoChange(ImageType imageType, int imageCount)
|
||||||
{
|
{
|
||||||
var item = GetItemWithImages(imageType, imageCount, true);
|
ValidateImages_Test(imageType, imageCount, true, 0, false, imageCount);
|
||||||
|
|
||||||
var itemImageProvider = GetItemImageProvider(null, null);
|
|
||||||
var changed = itemImageProvider.ValidateImages(item, Enumerable.Empty<ILocalImageProvider>(), null);
|
|
||||||
|
|
||||||
Assert.False(changed);
|
|
||||||
Assert.Equal(imageCount, item.GetImages(imageType).Count());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[Theory]
|
[Theory]
|
||||||
[MemberData(nameof(GetImageTypesWithCount))]
|
[MemberData(nameof(GetImageTypesWithCount))]
|
||||||
public void ValidateImages_PopulatedItemWithBadPathsAndEmptyProviders_RemovesImage(ImageType imageType, int imageCount)
|
public void ValidateImages_PopulatedItemWithBadPathsAndEmptyProviders_RemovesImage(ImageType imageType, int imageCount)
|
||||||
{
|
{
|
||||||
var item = GetItemWithImages(imageType, imageCount, false);
|
ValidateImages_Test(imageType, imageCount, false, 0, true, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ValidateImages_Test(ImageType imageType, int initialImageCount, bool initialPathsValid, int providerImageCount, bool expectedChange, int expectedImageCount)
|
||||||
|
{
|
||||||
|
var item = GetItemWithImages(imageType, initialImageCount, initialPathsValid);
|
||||||
|
|
||||||
|
var imageProvider = GetImageProvider(imageType, providerImageCount, true);
|
||||||
|
|
||||||
var itemImageProvider = GetItemImageProvider(null, null);
|
var itemImageProvider = GetItemImageProvider(null, null);
|
||||||
var changed = itemImageProvider.ValidateImages(item, Enumerable.Empty<ILocalImageProvider>(), null);
|
var actualChange = itemImageProvider.ValidateImages(item, new[] { imageProvider }, null);
|
||||||
|
|
||||||
Assert.True(changed);
|
Assert.Equal(expectedChange, actualChange);
|
||||||
Assert.Empty(item.GetImages(imageType));
|
Assert.Equal(expectedImageCount, item.GetImages(imageType).Count());
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
@ -137,41 +124,14 @@ namespace Jellyfin.Providers.Tests.Manager
|
|||||||
}
|
}
|
||||||
|
|
||||||
[Theory]
|
[Theory]
|
||||||
[MemberData(nameof(GetImageTypesWithCount))]
|
[InlineData(ImageType.Primary, 1, false)]
|
||||||
public void MergeImages_PopulatedItemWithGoodPathsAndSameNewImages_NoChange(ImageType imageType, int imageCount)
|
[InlineData(ImageType.Backdrop, 2, false)]
|
||||||
|
[InlineData(ImageType.Primary, 1, true)]
|
||||||
|
[InlineData(ImageType.Backdrop, 2, true)]
|
||||||
|
public void MergeImages_PopulatedItemWithGoodPathsAndSameNewImages_ResetIfTimeChanges(ImageType imageType, int imageCount, bool updateTime)
|
||||||
{
|
{
|
||||||
var oldTime = new DateTime(1970, 1, 1);
|
var oldTime = new DateTime(1970, 1, 1);
|
||||||
|
var updatedTime = updateTime ? new DateTime(2021, 1, 1) : oldTime;
|
||||||
// match update time with time added to item images (unix epoch)
|
|
||||||
var fileSystem = new Mock<IFileSystem>();
|
|
||||||
fileSystem.Setup(fs => fs.GetLastWriteTimeUtc(It.IsAny<FileSystemMetadata>()))
|
|
||||||
.Returns(oldTime);
|
|
||||||
BaseItem.FileSystem = fileSystem.Object;
|
|
||||||
|
|
||||||
// all valid paths - matching for strictly updating
|
|
||||||
var item = GetItemWithImages(imageType, imageCount, true);
|
|
||||||
// set size to non-zero to allow for updates to occur
|
|
||||||
foreach (var image in item.GetImages(imageType))
|
|
||||||
{
|
|
||||||
image.DateModified = oldTime;
|
|
||||||
image.Height = 1;
|
|
||||||
image.Width = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
var images = GetImages(imageType, imageCount, true);
|
|
||||||
|
|
||||||
var itemImageProvider = GetItemImageProvider(null, fileSystem);
|
|
||||||
var changed = itemImageProvider.MergeImages(item, images);
|
|
||||||
|
|
||||||
Assert.False(changed);
|
|
||||||
}
|
|
||||||
|
|
||||||
[Theory]
|
|
||||||
[MemberData(nameof(GetImageTypesWithCount))]
|
|
||||||
public void MergeImages_PopulatedItemWithGoodPathsAndSameNewImagesWithNewTimestamps_ResetsImageSizes(ImageType imageType, int imageCount)
|
|
||||||
{
|
|
||||||
var oldTime = new DateTime(1970, 1, 1);
|
|
||||||
var updatedTime = new DateTime(2021, 1, 1);
|
|
||||||
|
|
||||||
var fileSystem = new Mock<IFileSystem>();
|
var fileSystem = new Mock<IFileSystem>();
|
||||||
fileSystem.Setup(fs => fs.GetLastWriteTimeUtc(It.IsAny<FileSystemMetadata>()))
|
fileSystem.Setup(fs => fs.GetLastWriteTimeUtc(It.IsAny<FileSystemMetadata>()))
|
||||||
@ -193,14 +153,21 @@ namespace Jellyfin.Providers.Tests.Manager
|
|||||||
var itemImageProvider = GetItemImageProvider(null, fileSystem);
|
var itemImageProvider = GetItemImageProvider(null, fileSystem);
|
||||||
var changed = itemImageProvider.MergeImages(item, images);
|
var changed = itemImageProvider.MergeImages(item, images);
|
||||||
|
|
||||||
Assert.True(changed);
|
if (updateTime)
|
||||||
// before and after paths are the same, verify updated by size reset to 0
|
|
||||||
Assert.Equal(imageCount, item.GetImages(imageType).Count());
|
|
||||||
foreach (var image in item.GetImages(imageType))
|
|
||||||
{
|
{
|
||||||
Assert.Equal(updatedTime, image.DateModified);
|
Assert.True(changed);
|
||||||
Assert.Equal(0, image.Height);
|
// before and after paths are the same, verify updated by size reset to 0
|
||||||
Assert.Equal(0, image.Width);
|
Assert.Equal(imageCount, item.GetImages(imageType).Count());
|
||||||
|
foreach (var image in item.GetImages(imageType))
|
||||||
|
{
|
||||||
|
Assert.Equal(updatedTime, image.DateModified);
|
||||||
|
Assert.Equal(0, image.Height);
|
||||||
|
Assert.Equal(0, image.Width);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Assert.False(changed);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user