123 lines
4.6 KiB
C#
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));
|
|
}
|
|
}
|