| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- using Admin.NET.Plugin.AiDOP.Supply;
- using Xunit;
- namespace Admin.NET.Plugin.AiDOP.Tests.S3.Supply;
- public class NumberRuleFormatterTests
- {
- [Theory]
- [InlineData("YYYYMMDD", "20260510")]
- [InlineData("YYMMDD", "260510")]
- [InlineData("YYYYMM", "202605")]
- [InlineData("YYMM", "2605")]
- [InlineData("YYYY", "2026")]
- [InlineData("MMDD", "0510")]
- public void FormatDatePart_WhenKnownPattern_ReturnsExpected(string dateType, string expected)
- {
- var now = new DateTime(2026, 5, 10);
- Assert.Equal(expected, NumberRuleFormatter.FormatDatePart(dateType, now));
- }
- [Fact]
- public void ResolveSerialWidth_WhenMaxValue9999_ReturnsFour()
- {
- Assert.Equal(4, NumberRuleFormatter.ResolveSerialWidth(9999));
- }
- [Fact]
- public void ResolveSerialWidth_WhenMaxValueMissing_DefaultsToFour()
- {
- Assert.Equal(4, NumberRuleFormatter.ResolveSerialWidth(null));
- }
- [Fact]
- public void BuildNumber_WhenPwDailyRule_ReturnsExpectedNumber()
- {
- var now = new DateTime(2026, 5, 10);
- var number = NumberRuleFormatter.BuildNumber("P", "W", null, "YYYYMMDD", true, 1, 9999, now);
- Assert.Equal("PW202605100001", number);
- }
- [Fact]
- public void BuildNumber_WhenM8DailyRule_ReturnsExpectedNumber()
- {
- var now = new DateTime(2026, 5, 10);
- var number = NumberRuleFormatter.BuildNumber("D", null, null, "YYYYMMDD", true, 1, 99999, now);
- Assert.Equal("D2026051000001", number);
- }
- [Theory]
- [InlineData("YYYYMMDD", "2026-05-10")]
- [InlineData("YYYYMM", "2026-05-01")]
- [InlineData("YYYY", "2026-01-01")]
- public void ResolveSequenceDate_WhenDateRule_ReturnsExpectedBucket(string dateType, string expected)
- {
- var now = new DateTime(2026, 5, 10, 14, 30, 0);
- var sequenceDate = NumberRuleFormatter.ResolveSequenceDate(dateType, true, now);
- Assert.Equal(DateTime.Parse(expected), sequenceDate);
- }
- [Fact]
- public void ResolveSequenceDate_WhenNoDateRule_ReturnsNull()
- {
- var now = new DateTime(2026, 5, 10);
- var sequenceDate = NumberRuleFormatter.ResolveSequenceDate(null, false, now);
- Assert.Null(sequenceDate);
- }
- [Fact]
- public void BuildNumber_WhenNoDateType_ReturnsPrefixAndSerial()
- {
- var now = new DateTime(2026, 5, 10);
- var number = NumberRuleFormatter.BuildNumber("J", "H", "D", null, false, 12, 999, now);
- Assert.Equal("JHD012", number);
- }
- }
|