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.
140 lines
3.8 KiB
140 lines
3.8 KiB
using System.Diagnostics.CodeAnalysis;
|
|
using Recyclarr.Cli.Pipelines.QualityProfile;
|
|
using Recyclarr.Cli.Pipelines.QualityProfile.Models;
|
|
using Recyclarr.Config.Models;
|
|
using Recyclarr.ServarrApi.QualityProfile;
|
|
|
|
namespace Recyclarr.Cli.Tests;
|
|
|
|
public static class NewQp
|
|
{
|
|
public static ProcessedQualityProfileData Processed(
|
|
string profileName,
|
|
params (string TrashId, int FormatId, int Score)[] scores
|
|
)
|
|
{
|
|
return Processed(profileName, false, scores);
|
|
}
|
|
|
|
public static ProcessedQualityProfileData Processed(
|
|
string profileName,
|
|
bool resetUnmatchedScores,
|
|
params (string TrashId, int FormatId, int Score)[] scores
|
|
)
|
|
{
|
|
return Processed(
|
|
profileName,
|
|
resetUnmatchedScores,
|
|
scores.Select(x => ("", x.TrashId, x.FormatId, x.Score)).ToArray()
|
|
);
|
|
}
|
|
|
|
public static ProcessedQualityProfileData Processed(
|
|
string profileName,
|
|
bool resetUnmatchedScores,
|
|
params (string CfName, string TrashId, int FormatId, int Score)[] scores
|
|
)
|
|
{
|
|
var profileConfig = new QualityProfileConfig
|
|
{
|
|
Name = profileName,
|
|
ResetUnmatchedScores = new ResetUnmatchedScoresConfig
|
|
{
|
|
Enabled = resetUnmatchedScores,
|
|
},
|
|
};
|
|
|
|
return Processed(profileConfig, scores);
|
|
}
|
|
|
|
public static ProcessedQualityProfileData Processed(
|
|
QualityProfileConfig profileConfig,
|
|
params (string CfName, string TrashId, int FormatId, int Score)[] scores
|
|
)
|
|
{
|
|
return new ProcessedQualityProfileData
|
|
{
|
|
Profile = profileConfig,
|
|
CfScores = scores
|
|
.Select(x => new ProcessedQualityProfileScore(
|
|
x.TrashId,
|
|
x.CfName,
|
|
x.FormatId,
|
|
x.Score
|
|
))
|
|
.ToList(),
|
|
};
|
|
}
|
|
|
|
public static UpdatedFormatScore UpdatedScore(
|
|
string name,
|
|
int oldScore,
|
|
int newScore,
|
|
FormatScoreUpdateReason reason
|
|
)
|
|
{
|
|
return new UpdatedFormatScore(
|
|
new ProfileFormatItemDto { Name = name, Score = oldScore },
|
|
newScore,
|
|
reason
|
|
);
|
|
}
|
|
|
|
public static ProfileItemDto GroupDto(
|
|
int itemId,
|
|
string itemName,
|
|
bool enabled,
|
|
params ProfileItemDto[] nestedItems
|
|
)
|
|
{
|
|
return new ProfileItemDto
|
|
{
|
|
Id = itemId,
|
|
Name = itemName,
|
|
Allowed = enabled,
|
|
Items = nestedItems,
|
|
};
|
|
}
|
|
|
|
public static ProfileItemDto QualityDto(int itemId, string itemName, bool enabled)
|
|
{
|
|
return new ProfileItemDto
|
|
{
|
|
Allowed = enabled,
|
|
Quality = new ProfileItemQualityDto { Id = itemId, Name = itemName },
|
|
};
|
|
}
|
|
|
|
[SuppressMessage(
|
|
"ReSharper",
|
|
"IntroduceOptionalParameters.Global",
|
|
Justification = "This is for unit test purposes and we want to be explicit sometimes"
|
|
)]
|
|
public static QualityProfileQualityConfig QualityConfig(string itemName)
|
|
{
|
|
return QualityConfig(itemName, true);
|
|
}
|
|
|
|
public static QualityProfileQualityConfig QualityConfig(string itemName, bool enabled)
|
|
{
|
|
return new QualityProfileQualityConfig { Enabled = enabled, Name = itemName };
|
|
}
|
|
|
|
public static QualityProfileQualityConfig GroupConfig(
|
|
string itemName,
|
|
params string[] nestedItems
|
|
)
|
|
{
|
|
return GroupConfig(itemName, true, nestedItems);
|
|
}
|
|
|
|
public static QualityProfileQualityConfig GroupConfig(
|
|
string itemName,
|
|
bool enabled,
|
|
params string[] nestedItems
|
|
)
|
|
{
|
|
return QualityConfig(itemName, enabled) with { Qualities = nestedItems };
|
|
}
|
|
}
|