You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
53 lines
1.5 KiB
53 lines
1.5 KiB
using System.IO.Abstractions.TestingHelpers;
|
|
using AutoFixture.NUnit3;
|
|
using FluentAssertions;
|
|
using Newtonsoft.Json;
|
|
using NSubstitute;
|
|
using NUnit.Framework;
|
|
using TestLibrary.AutoFixture;
|
|
using TrashLib.Radarr.Config;
|
|
using TrashLib.Sonarr.ReleaseProfile;
|
|
using TrashLib.Sonarr.ReleaseProfile.Guide;
|
|
|
|
namespace TrashLib.Tests.Sonarr.ReleaseProfile.Guide;
|
|
|
|
[TestFixture]
|
|
[Parallelizable(ParallelScope.All)]
|
|
public class LocalRepoReleaseProfileJsonParserTest
|
|
{
|
|
[Test, AutoMockData]
|
|
public void Get_custom_format_json_works(
|
|
[Frozen] IResourcePaths paths,
|
|
[Frozen(Matching.ImplementedInterfaces)] MockFileSystem fileSystem,
|
|
LocalRepoReleaseProfileJsonParser sut)
|
|
{
|
|
static ReleaseProfileData MakeMockObject(string term) => new()
|
|
{
|
|
Name = "name",
|
|
TrashId = "123",
|
|
Required = new TermData[]
|
|
{
|
|
new() {Term = term}
|
|
}
|
|
};
|
|
|
|
static MockFileData MockFileData(dynamic obj) =>
|
|
new MockFileData(JsonConvert.SerializeObject(obj));
|
|
|
|
var mockData1 = MakeMockObject("first");
|
|
var mockData2 = MakeMockObject("second");
|
|
|
|
paths.RepoPath.Returns("");
|
|
fileSystem.AddFile("docs/json/sonarr/first.json", MockFileData(mockData1));
|
|
fileSystem.AddFile("docs/json/sonarr/second.json", MockFileData(mockData2));
|
|
|
|
var results = sut.GetReleaseProfileData();
|
|
|
|
results.Should().BeEquivalentTo(new[]
|
|
{
|
|
mockData1,
|
|
mockData2
|
|
});
|
|
}
|
|
}
|