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); } }