95aad3a2f6
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
44 lines
1.3 KiB
C#
44 lines
1.3 KiB
C#
using GmRelay.DiscordBot.Features.Sessions;
|
|
|
|
namespace GmRelay.Bot.Tests.Discord;
|
|
|
|
public sealed class DiscordNewSessionHandlerTests
|
|
{
|
|
[Fact]
|
|
public void ParseTimeInput_ShouldParseDiscordDateFormat()
|
|
{
|
|
var result = DiscordNewSessionHandler.ParseTimeInput("2026-05-20 19:30");
|
|
Assert.True(result.IsSuccess);
|
|
Assert.Equal(2026, result.Value.Year);
|
|
Assert.Equal(5, result.Value.Month);
|
|
Assert.Equal(20, result.Value.Day);
|
|
Assert.Equal(19, result.Value.Hour);
|
|
Assert.Equal(30, result.Value.Minute);
|
|
}
|
|
|
|
[Fact]
|
|
public void ParseTimeInput_ShouldRejectPastDate()
|
|
{
|
|
var result = DiscordNewSessionHandler.ParseTimeInput("2020-01-01 00:00");
|
|
Assert.False(result.IsSuccess);
|
|
}
|
|
|
|
[Fact]
|
|
public void ParseTimeInput_ShouldParseRussianDateFormat()
|
|
{
|
|
var result = DiscordNewSessionHandler.ParseTimeInput("20.05.2026 19:30");
|
|
Assert.True(result.IsSuccess);
|
|
Assert.Equal(2026, result.Value.Year);
|
|
Assert.Equal(5, result.Value.Month);
|
|
Assert.Equal(20, result.Value.Day);
|
|
}
|
|
|
|
[Fact]
|
|
public void ParseTimeInput_ShouldRejectInvalidFormat()
|
|
{
|
|
var result = DiscordNewSessionHandler.ParseTimeInput("not-a-date");
|
|
Assert.False(result.IsSuccess);
|
|
Assert.NotNull(result.Error);
|
|
}
|
|
}
|