2
0
forked from sim0n00ps/OF-DL
OF-DL/OF DL.Tests/Models/Config/ConfigTests.cs

123 lines
4.6 KiB
C#

using OF_DL.Models.Config;
namespace OF_DL.Tests.Models.Config;
public class ConfigTests
{
[Fact]
public void GetCreatorFileNameFormatConfig_UsesCreatorFormatWhenDefined()
{
OF_DL.Models.Config.Config config = new()
{
PaidPostFileNameFormat = "global-paid-post",
PostFileNameFormat = "global-post",
PaidMessageFileNameFormat = "global-paid-message",
MessageFileNameFormat = "global-message",
CreatorConfigs = new Dictionary<string, CreatorConfig>
{
["creator"] = new()
{
PaidPostFileNameFormat = "creator-paid-post",
PostFileNameFormat = "creator-post",
PaidMessageFileNameFormat = "creator-paid-message",
MessageFileNameFormat = "creator-message"
}
}
};
IFileNameFormatConfig result = config.GetCreatorFileNameFormatConfig("creator");
Assert.Equal("creator-paid-post", result.PaidPostFileNameFormat);
Assert.Equal("creator-post", result.PostFileNameFormat);
Assert.Equal("creator-paid-message", result.PaidMessageFileNameFormat);
Assert.Equal("creator-message", result.MessageFileNameFormat);
}
[Fact]
public void GetCreatorFileNameFormatConfig_FallsBackToGlobalWhenCreatorFormatIsNullOrEmpty()
{
OF_DL.Models.Config.Config config = new()
{
PaidPostFileNameFormat = "global-paid-post",
PostFileNameFormat = "global-post",
PaidMessageFileNameFormat = "global-paid-message",
MessageFileNameFormat = "global-message",
CreatorConfigs = new Dictionary<string, CreatorConfig>
{
["creator"] = new()
{
PaidPostFileNameFormat = null,
PostFileNameFormat = "",
PaidMessageFileNameFormat = null,
MessageFileNameFormat = ""
}
}
};
IFileNameFormatConfig result = config.GetCreatorFileNameFormatConfig("creator");
Assert.Equal("global-paid-post", result.PaidPostFileNameFormat);
Assert.Equal("global-post", result.PostFileNameFormat);
Assert.Equal("global-paid-message", result.PaidMessageFileNameFormat);
Assert.Equal("global-message", result.MessageFileNameFormat);
}
[Fact]
public void GetCreatorFileNameFormatConfig_UsesGlobalWhenCreatorConfigDoesNotExist()
{
OF_DL.Models.Config.Config config = new()
{
PaidPostFileNameFormat = "global-paid-post",
PostFileNameFormat = "global-post",
PaidMessageFileNameFormat = "global-paid-message",
MessageFileNameFormat = "global-message",
CreatorConfigs = new Dictionary<string, CreatorConfig>
{
["other-creator"] = new()
{
PaidPostFileNameFormat = "other-paid-post",
PostFileNameFormat = "other-post",
PaidMessageFileNameFormat = "other-paid-message",
MessageFileNameFormat = "other-message"
}
}
};
IFileNameFormatConfig result = config.GetCreatorFileNameFormatConfig("creator");
Assert.Equal("global-paid-post", result.PaidPostFileNameFormat);
Assert.Equal("global-post", result.PostFileNameFormat);
Assert.Equal("global-paid-message", result.PaidMessageFileNameFormat);
Assert.Equal("global-message", result.MessageFileNameFormat);
}
[Fact]
public void GetCreatorFileNameFormatConfig_ReturnsEmptyFormatsWhenCreatorAndGlobalAreUndefined()
{
OF_DL.Models.Config.Config config = new()
{
PaidPostFileNameFormat = "",
PostFileNameFormat = "",
PaidMessageFileNameFormat = "",
MessageFileNameFormat = "",
CreatorConfigs = new Dictionary<string, CreatorConfig>
{
["creator"] = new()
{
PaidPostFileNameFormat = "",
PostFileNameFormat = null,
PaidMessageFileNameFormat = "",
MessageFileNameFormat = null
}
}
};
IFileNameFormatConfig result = config.GetCreatorFileNameFormatConfig("creator");
Assert.True(string.IsNullOrEmpty(result.PaidPostFileNameFormat));
Assert.True(string.IsNullOrEmpty(result.PostFileNameFormat));
Assert.True(string.IsNullOrEmpty(result.PaidMessageFileNameFormat));
Assert.True(string.IsNullOrEmpty(result.MessageFileNameFormat));
}
}