Skip to content

Merge remote-tracking branch 'origin/master' into test/more_excludes #21

Merge remote-tracking branch 'origin/master' into test/more_excludes

Merge remote-tracking branch 'origin/master' into test/more_excludes #21

GitHub Actions / XUnit Tests succeeded Dec 29, 2023 in 1s

XUnit Tests ✅

Tests passed successfully

Report Passed Failed Skipped Time
/home/runner/work/OpenttdDiscord/OpenttdDiscord/TestResults/OpenttdDiscord.Database.Tests/OpenttdDiscord.Database.Tests.trx 31✅ 11s
/home/runner/work/OpenttdDiscord/OpenttdDiscord/TestResults/OpenttdDiscord.Domain.Tests/OpenttdDiscord.Domain.Tests.trx 23✅ 6s
/home/runner/work/OpenttdDiscord/OpenttdDiscord/TestResults/OpenttdDiscord.Infrastructure.Tests/OpenttdDiscord.Infrastructure.Tests.trx 112✅ 24s
/home/runner/work/OpenttdDiscord/OpenttdDiscord/TestResults/OpenttdDiscord.Validation.Tests/OpenttdDiscord.Validation.Tests.trx 30✅ 5s

✅ /home/runner/work/OpenttdDiscord/OpenttdDiscord/TestResults/OpenttdDiscord.Database.Tests/OpenttdDiscord.Database.Tests.trx

31 tests were completed in 11s with 31 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
OpenttdDiscord.Database.Tests.AutoReplies.AutoReplyRepositoryShould 9✅ 1s
OpenttdDiscord.Database.Tests.Chatting.ChatChannelRepositoryShould 4✅ 84ms
OpenttdDiscord.Database.Tests.Rcon.RconChannelRepositoryShould 5✅ 511ms
OpenttdDiscord.Database.Tests.Reporting.ReportChannelRepositoryShould 4✅ 428ms
OpenttdDiscord.Database.Tests.Roles.RolesRepositoryShould 3✅ 224ms
OpenttdDiscord.Database.Tests.Servers.OttdServerRepositoryShould 3✅ 310ms
OpenttdDiscord.Database.Tests.Statuses.StatusMonitorRepositoryShould 3✅ 2s

✅ OpenttdDiscord.Database.Tests.AutoReplies.AutoReplyRepositoryShould

✅ Insert_TwoDifferentAutoReplies_ToTheSameServer
✅ InsertAutoReplyMessage_AndRetrieveIt
✅ InsertAutoReplyMessage_AndRetrieveIt_AsOptionAutoReply
✅ InsertMoreThanOneWelcomeMessagePerGuid
✅ InsertWelcomeMessage_AndRetrieveIt
✅ RemoveAutoReplyMessage
✅ ReturnOptionNone_WhileRetrievingSingleAutoReplyFromDatabase_WhenItDoesNotExist
✅ UpdateAutoReplyMessage
✅ UpdateWelcomeMessage

✅ OpenttdDiscord.Database.Tests.Chatting.ChatChannelRepositoryShould

✅ DeleteChatChannel
✅ Fail_WhenInsertingSameChatChannelTwice_ForSameServer
✅ GetNoChatChannels_IfNoChatChannelsWereInserted
✅ InsertNewChatChannel

✅ OpenttdDiscord.Database.Tests.Rcon.RconChannelRepositoryShould

✅ DeleteRconChannel
✅ Fail_WhenInsertingSameRconChannelTwice_ForSameServer
✅ GetNoRconChannelForServerIfNoRconChannelsWereInserted
✅ GetNoRconChannelsForGuild_IfNoRconChannelsWereInserted
✅ InsertNewRconChannel

✅ OpenttdDiscord.Database.Tests.Reporting.ReportChannelRepositoryShould

✅ DeleteChatChannel
✅ Fail_WhenInsertingSameChatChannelTwice_ForSameServer
✅ GetNoChatChannels_IfNoChatChannelsWereInserted
✅ InsertNewChatChannel

✅ OpenttdDiscord.Database.Tests.Roles.RolesRepositoryShould

✅ DeleteRoleFromDatabase
✅ InsertServerToDatabase
✅ UpdateRoleInDatabase

✅ OpenttdDiscord.Database.Tests.Servers.OttdServerRepositoryShould

✅ InsertServerToDatabase
✅ RemoveServerFromDatabase
✅ UpdateServerInDatabase

✅ OpenttdDiscord.Database.Tests.Statuses.StatusMonitorRepositoryShould

✅ InsertMonitorToDatabase
✅ RemoveMonitorFromDatabase
✅ UpdateMonitorInDatabase

✅ /home/runner/work/OpenttdDiscord/OpenttdDiscord/TestResults/OpenttdDiscord.Domain.Tests/OpenttdDiscord.Domain.Tests.trx

23 tests were completed in 6s with 23 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
OpenttdDiscord.Domain.Tests.Chatting.Translating.ChatTranslatorShould 23✅ 79ms

✅ OpenttdDiscord.Domain.Tests.Chatting.Translating.ChatTranslatorShould

✅ ProperlyTranslateAsciiToEmoji(emoji: "\ud83d\ude04", ascii: ":D")
✅ ProperlyTranslateAsciiToEmoji(emoji: "\ud83d\ude09", ascii: ";)")
✅ ProperlyTranslateAsciiToEmoji(emoji: "\ud83d\ude10", ascii: ":|")
✅ ProperlyTranslateAsciiToEmoji(emoji: "\ud83d\ude1b", ascii: ":P")
✅ ProperlyTranslateAsciiToEmoji(emoji: "\ud83d\ude20", ascii: ">:(")
✅ ProperlyTranslateAsciiToEmoji(emoji: "\ud83d\ude21", ascii: ":@")
✅ ProperlyTranslateAsciiToEmoji(emoji: "\ud83d\ude26", ascii: ":(")
✅ ProperlyTranslateAsciiToEmoji(emoji: "\ud83d\ude2d", ascii: ";(")
✅ ProperlyTranslateAsciiToEmoji(emoji: "\ud83d\ude2e", ascii: ":O")
✅ ProperlyTranslateAsciiToEmoji(emoji: "\ud83d\ude42", ascii: ":)")
✅ ProperlyTranslateAsciiToEmoji(emoji: "❤️", ascii: "<3")
✅ ProperlyTranslateEmojiToAscii(emoji: "\ud83d\ude04", ascii: ":D")
✅ ProperlyTranslateEmojiToAscii(emoji: "\ud83d\ude09", ascii: ";)")
✅ ProperlyTranslateEmojiToAscii(emoji: "\ud83d\ude10", ascii: ":|")
✅ ProperlyTranslateEmojiToAscii(emoji: "\ud83d\ude1b", ascii: ":P")
✅ ProperlyTranslateEmojiToAscii(emoji: "\ud83d\ude20", ascii: ">:(")
✅ ProperlyTranslateEmojiToAscii(emoji: "\ud83d\ude21", ascii: ":@")
✅ ProperlyTranslateEmojiToAscii(emoji: "\ud83d\ude26", ascii: ":(")
✅ ProperlyTranslateEmojiToAscii(emoji: "\ud83d\ude2d", ascii: ";(")
✅ ProperlyTranslateEmojiToAscii(emoji: "\ud83d\ude2e", ascii: ":O")
✅ ProperlyTranslateEmojiToAscii(emoji: "\ud83d\ude42", ascii: ":)")
✅ ProperlyTranslateEmojiToAscii(emoji: "❤️", ascii: "<3")
✅ ShouldReplaceNewLines_WithDots(input: "Super text\nYeah...", expectedOutput: "Super text.Yeah...")

✅ /home/runner/work/OpenttdDiscord/OpenttdDiscord/TestResults/OpenttdDiscord.Infrastructure.Tests/OpenttdDiscord.Infrastructure.Tests.trx

112 tests were completed in 24s with 112 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
OpenttdDiscord.Infrastructure.Tests.Akkas.AkkaServiceShould 2✅ 93ms
OpenttdDiscord.Infrastructure.Tests.AutoReplies.Actors.AutoReplyActorShould 7✅ 2s
OpenttdDiscord.Infrastructure.Tests.AutoReplies.Actors.AutoReplyInstanceActorShould 7✅ 4s
OpenttdDiscord.Infrastructure.Tests.AutoReplies.Actors.WelcomeActorShould 3✅ 88ms
OpenttdDiscord.Infrastructure.Tests.AutoReplies.CommandRunners.GetAutoRepliesCommandRunnerShould 4✅ 18ms
OpenttdDiscord.Infrastructure.Tests.AutoReplies.CommandRunners.GetAutoReplyContentCommandRunnerShould 5✅ 12ms
OpenttdDiscord.Infrastructure.Tests.AutoReplies.CommandRunners.RemoveAutoReplyCommandRunnerShould 4✅ 13ms
OpenttdDiscord.Infrastructure.Tests.AutoReplies.CommandRunners.SetAutoReplyCommandRunnerShould 4✅ 9ms
OpenttdDiscord.Infrastructure.Tests.AutoReplies.CommandRunners.SetWelcomeMessageCommandRunnerShould 4✅ 17ms
OpenttdDiscord.Infrastructure.Tests.AutoReplies.ModalRunners.SetAutoReplyModalRunnerShould 3✅ 8ms
OpenttdDiscord.Infrastructure.Tests.AutoReplies.ModalRunners.SetWelcomeMessageModalRunnerShould 3✅ 30ms
OpenttdDiscord.Infrastructure.Tests.AutoReplies.UseCases.RemoveAutoReplyUseCaseShould 3✅ 81ms
OpenttdDiscord.Infrastructure.Tests.AutoReplies.UseCases.UpsertWelcomeMessageUseCaseShould 2✅ 76ms
OpenttdDiscord.Infrastructure.Tests.Chatting.CommandRunners.RegisterChatChannelRunnerShould 2✅ 6ms
OpenttdDiscord.Infrastructure.Tests.Chatting.CommandRunners.UnregisterChatChannelRunnerShould 2✅ 3ms
OpenttdDiscord.Infrastructure.Tests.Chatting.OttdCommunicationActorShould 5✅ 12s
OpenttdDiscord.Infrastructure.Tests.EventLogs.Runners.QueryEventLogRunnerShould 1✅ 3ms
OpenttdDiscord.Infrastructure.Tests.Maintenance.HealthChecks.DatabaseHealthcheckShould 3✅ 2s
OpenttdDiscord.Infrastructure.Tests.Maintenance.Runners.HealthCheckRunnerShould 1✅ 1ms
OpenttdDiscord.Infrastructure.Tests.Ottd.Runners.QueryDebugInfoRunnerShould 1✅ 2ms
OpenttdDiscord.Infrastructure.Tests.Ottd.Runners.QueryServerRunnerShould 1✅ 5ms
OpenttdDiscord.Infrastructure.Tests.Rcon.Runners.ListRconChannelsRunnerShould 1✅ 3ms
OpenttdDiscord.Infrastructure.Tests.Rcon.Runners.RegisterRconChannelRunnerShould 2✅ 5ms
OpenttdDiscord.Infrastructure.Tests.Rcon.Runners.UnregisterRconChannelRunnerShould 2✅ 4ms
OpenttdDiscord.Infrastructure.Tests.Reporting.Runners.ListReportChannelsRunnerShould 1✅ 3ms
OpenttdDiscord.Infrastructure.Tests.Reporting.Runners.RegisterReportChannelRunnerShould 2✅ 4ms
OpenttdDiscord.Infrastructure.Tests.Reporting.Runners.UnregisterReportChannelRunnerShould 2✅ 3ms
OpenttdDiscord.Infrastructure.Tests.Roles.Actors.GuildRoleActorShould 4✅ 159ms
OpenttdDiscord.Infrastructure.Tests.Roles.Runners.DeleteRoleRunnerShould 3✅ 225ms
OpenttdDiscord.Infrastructure.Tests.Roles.Runners.GetGuildRolesRunnerShould 2✅ 27ms
OpenttdDiscord.Infrastructure.Tests.Roles.Runners.GetRoleRunnerShould 4✅ 7ms
OpenttdDiscord.Infrastructure.Tests.Roles.Runners.RegisterBotRoleRunnerShould 3✅ 6ms
OpenttdDiscord.Infrastructure.Tests.Roles.UseCases.DeleteRoleLevelUseCaseShould 1✅ 27ms
OpenttdDiscord.Infrastructure.Tests.Roles.UseCases.GetRoleLevelUseCaseShould 3✅ 15ms
OpenttdDiscord.Infrastructure.Tests.Roles.UseCases.RegisterRoleUseCaseShould 2✅ 4ms
OpenttdDiscord.Infrastructure.Tests.Servers.Runners.ListServerRunnerShould 1✅ 2ms
OpenttdDiscord.Infrastructure.Tests.Servers.Runners.RegisterServerRunnerShould 2✅ 3ms
OpenttdDiscord.Infrastructure.Tests.Servers.Runners.RemoveOttdServerRunnerShould 2✅ 3ms
OpenttdDiscord.Infrastructure.Tests.Statuses.Runners.RegisterStatusMonitorRunnerShould 2✅ 4ms
OpenttdDiscord.Infrastructure.Tests.Statuses.Runners.RemoveStatusMonitorRunnerShould 2✅ 3ms
OpenttdDiscord.Infrastructure.Tests.Statuses.UseCases.RegisterStatusMonitorUseCaseShould 4✅ 88ms

✅ OpenttdDiscord.Infrastructure.Tests.Akkas.AkkaServiceShould

✅ SelectActor
✅ SelectActor_AndSendItAMessage

✅ OpenttdDiscord.Infrastructure.Tests.AutoReplies.Actors.AutoReplyActorShould

✅ NotSendAnything_IfPlayerJoins_AndWelcomeMessageIsNotConfigured
✅ NotSendAutoReply_IfAutoReply_IsRemovedAfterBeingConfiguredInDatabase
✅ SendAMessageToJoiningPlayer_ifWelcomeMessageIsConfigured
✅ SendAutoReply_AfterReceiving_UpdateAutoReplyMessage_WhichCreatesAutoReplyActor
✅ SendAutoReply_IfAutoReply_IsConfiguredInDatabase
✅ SendMessage_IfWelcomeMessage_IsConfiguredInDatabase
✅ SendUpdatedMessageToJoiningPlayer_ifWelcomeMessageIsConfigured

✅ OpenttdDiscord.Infrastructure.Tests.AutoReplies.Actors.AutoReplyInstanceActorShould

✅ ShouldChunkLongTriggerMessages
✅ ShouldNotResetCompany_WhenThereAre2OrMorePlayersInCompany
✅ ShouldNotWriteResponse_WhenMessage_IsComingFromServer
✅ ShouldNotWriteResponse_WhenMessage_IsNotTriggerMessage
✅ ShouldResetCompany_WhenAdditionalAction_SetToResetCompany
✅ ShouldWriteResponse_WhenTriggered_ByTriggerMessage
✅ ShouldWriteUpdatedResponse_WhenUpdated

✅ OpenttdDiscord.Infrastructure.Tests.AutoReplies.Actors.WelcomeActorShould

✅ SendMultipleMessages_IfThereAreLineBreaks
✅ ShouldRespondToNewPlayer_WithInitialMessage
✅ ShouldRespondToNewPlayer_WithUpdatedMessage

✅ OpenttdDiscord.Infrastructure.Tests.AutoReplies.CommandRunners.GetAutoRepliesCommandRunnerShould

✅ NotExecuteForNonAdmin(userLevel: Moderator)
✅ NotExecuteForNonAdmin(userLevel: User)
✅ ReturnAutoReplies_FromUseCase
✅ ReturnNoRepliesMesssage_WhenThereIsNoReplies

✅ OpenttdDiscord.Infrastructure.Tests.AutoReplies.CommandRunners.GetAutoReplyContentCommandRunnerShould

✅ GetAutoReplyContent
✅ NotExecuteForNonAdmin(userLevel: Moderator)
✅ NotExecuteForNonAdmin(userLevel: User)
✅ ReturnErrorWhenThereIsNoServer
✅ ReturnErrorWhenThereIsNoSuchMessage

✅ OpenttdDiscord.Infrastructure.Tests.AutoReplies.CommandRunners.RemoveAutoReplyCommandRunnerShould

✅ NotExecuteForNonAdmin(userLevel: Moderator)
✅ NotExecuteForNonAdmin(userLevel: User)
✅ RespondWithTextMessage_OnCorrectExecution
✅ ReturnAnError_IfRemovalEndsWithError

✅ OpenttdDiscord.Infrastructure.Tests.AutoReplies.CommandRunners.SetAutoReplyCommandRunnerShould

✅ NotExecuteForNonAdmin(userLevel: Moderator)
✅ NotExecuteForNonAdmin(userLevel: User)
✅ OpenAModal_WithContentForAutoReply_IfItExistInDatabase
✅ OpenAModal_WithNoContentForAutoReply_IfItWasNotYetCreated

✅ OpenttdDiscord.Infrastructure.Tests.AutoReplies.CommandRunners.SetWelcomeMessageCommandRunnerShould

✅ NotExecuteForNonAdmin(userLevel: Moderator)
✅ NotExecuteForNonAdmin(userLevel: User)
✅ OpenAModal_WithNoneWelcomeMessage_IfItWasNotYetCreated
✅ OpenAModal_WithWelcomeMessage_IfWelcomeMessageIsPresent

✅ OpenttdDiscord.Infrastructure.Tests.AutoReplies.ModalRunners.SetAutoReplyModalRunnerShould

✅ NotExecuteForNonAdmin(userLevel: Moderator)
✅ NotExecuteForNonAdmin(userLevel: User)
✅ UpdateContent_WhenContentIsSet

✅ OpenttdDiscord.Infrastructure.Tests.AutoReplies.ModalRunners.SetWelcomeMessageModalRunnerShould

✅ NotExecuteForNonAdmin(userLevel: Moderator)
✅ NotExecuteForNonAdmin(userLevel: User)
✅ UpdateContent_WhenContentIsSet

✅ OpenttdDiscord.Infrastructure.Tests.AutoReplies.UseCases.RemoveAutoReplyUseCaseShould

✅ DeleteAutoReply
✅ NotDeleteAutoReply_WhenAutoReplyNotFound
✅ NotDeleteAutoReply_WhenServerNotFound

✅ OpenttdDiscord.Infrastructure.Tests.AutoReplies.UseCases.UpsertWelcomeMessageUseCaseShould

✅ InformActorAboutUpdate
✅ UpsertDataIntoDatabase

✅ OpenttdDiscord.Infrastructure.Tests.Chatting.CommandRunners.RegisterChatChannelRunnerShould

✅ NotExecuteForNonAdmin(userLevel: Moderator)
✅ NotExecuteForNonAdmin(userLevel: User)

✅ OpenttdDiscord.Infrastructure.Tests.Chatting.CommandRunners.UnregisterChatChannelRunnerShould

✅ NotExecuteForNonAdmin(userLevel: Moderator)
✅ NotExecuteForNonAdmin(userLevel: User)

✅ OpenttdDiscord.Infrastructure.Tests.Chatting.OttdCommunicationActorShould

✅ NotSendMessage_FromServer
✅ NotSendMessage_ThatIsNotBroadcast(invalidChatDestination: DESTTYPE_CLIENT)
✅ NotSendMessage_ThatIsNotBroadcast(invalidChatDestination: DESTTYPE_TEAM)
✅ NotSendMessage_ThatIsNotChatMessage
✅ SendProperMessage_FromOttd

✅ OpenttdDiscord.Infrastructure.Tests.EventLogs.Runners.QueryEventLogRunnerShould

✅ NotExecuteForNonAdmin(userLevel: User)

✅ OpenttdDiscord.Infrastructure.Tests.Maintenance.HealthChecks.DatabaseHealthcheckShould

✅ ReturnDegradedStatus_WhenServerResponseIsNotReturnedASAP
✅ ReturnHealthyStatus_WhenServerResponseIsReturnedImmedietally
✅ ReturnUnhealthy_InCaseOfError

✅ OpenttdDiscord.Infrastructure.Tests.Maintenance.Runners.HealthCheckRunnerShould

✅ NotExecuteForNonModerator(userLevel: User)

✅ OpenttdDiscord.Infrastructure.Tests.Ottd.Runners.QueryDebugInfoRunnerShould

✅ NotExecuteForNonModerator(userLevel: User)

✅ OpenttdDiscord.Infrastructure.Tests.Ottd.Runners.QueryServerRunnerShould

✅ NotExecuteForNonModerator(userLevel: User)

✅ OpenttdDiscord.Infrastructure.Tests.Rcon.Runners.ListRconChannelsRunnerShould

✅ NotExecuteForNonModerator(userLevel: User)

✅ OpenttdDiscord.Infrastructure.Tests.Rcon.Runners.RegisterRconChannelRunnerShould

✅ NotExecuteForNonAdmin(userLevel: Moderator)
✅ NotExecuteForNonAdmin(userLevel: User)

✅ OpenttdDiscord.Infrastructure.Tests.Rcon.Runners.UnregisterRconChannelRunnerShould

✅ NotExecuteForNonAdmin(userLevel: Moderator)
✅ NotExecuteForNonAdmin(userLevel: User)

✅ OpenttdDiscord.Infrastructure.Tests.Reporting.Runners.ListReportChannelsRunnerShould

✅ NotExecuteForNonModerator(userLevel: User)

✅ OpenttdDiscord.Infrastructure.Tests.Reporting.Runners.RegisterReportChannelRunnerShould

✅ NotExecuteForNonAdmin(userLevel: Moderator)
✅ NotExecuteForNonAdmin(userLevel: User)

✅ OpenttdDiscord.Infrastructure.Tests.Reporting.Runners.UnregisterReportChannelRunnerShould

✅ NotExecuteForNonAdmin(userLevel: Moderator)
✅ NotExecuteForNonAdmin(userLevel: User)

✅ OpenttdDiscord.Infrastructure.Tests.Roles.Actors.GuildRoleActorShould

✅ RegisterAndRetrieve_Role
✅ RemoveDataInDatabase_WhenRemovingRole
✅ SaveDataInDatabase_WhenRegisteringRole
✅ UpdateRole_AfterRegistration

✅ OpenttdDiscord.Infrastructure.Tests.Roles.Runners.DeleteRoleRunnerShould

✅ DeleteRoleFromDatabase
✅ NotExecuteForNonAdmin(userLevel: Moderator)
✅ NotExecuteForNonAdmin(userLevel: User)

✅ OpenttdDiscord.Infrastructure.Tests.Roles.Runners.GetGuildRolesRunnerShould

✅ NotExecuteForNonModerator(userLevel: User)
✅ Return_ListOfRoles_WithCorrectUserLevel

✅ OpenttdDiscord.Infrastructure.Tests.Roles.Runners.GetRoleRunnerShould

✅ ReturnTextCommandResponse_WithUserLevel_ForGuildUser(userLevel: Admin)
✅ ReturnTextCommandResponse_WithUserLevel_ForGuildUser(userLevel: Moderator)
✅ ReturnTextCommandResponse_WithUserLevel_ForGuildUser(userLevel: User)
✅ ReturnTextCommandResponse_WithWordUser_ForNonGuildUser

✅ OpenttdDiscord.Infrastructure.Tests.Roles.Runners.RegisterBotRoleRunnerShould

✅ ExecuteUseCase
✅ NotExecuteForNonAdmin(userLevel: Moderator)
✅ NotExecuteForNonAdmin(userLevel: User)

✅ OpenttdDiscord.Infrastructure.Tests.Roles.UseCases.DeleteRoleLevelUseCaseShould

✅ DeleteCorrectRoleFromDatabase

✅ OpenttdDiscord.Infrastructure.Tests.Roles.UseCases.GetRoleLevelUseCaseShould

✅ ReturnAdminLevel_ForAdministratorUser
✅ ReturnProperLevel_FromRoleActor
✅ ReturnUserLevel_ForNonGuildUser

✅ OpenttdDiscord.Infrastructure.Tests.Roles.UseCases.RegisterRoleUseCaseShould

✅ SendMessageAboutNewRole_ToActor
✅ ThrowError_WhenRoleLevelIsIncorrect

✅ OpenttdDiscord.Infrastructure.Tests.Servers.Runners.ListServerRunnerShould

✅ NotExecuteForNonModerator(userLevel: User)

✅ OpenttdDiscord.Infrastructure.Tests.Servers.Runners.RegisterServerRunnerShould

✅ NotExecuteForNonAdmin(userLevel: Moderator)
✅ NotExecuteForNonAdmin(userLevel: User)

✅ OpenttdDiscord.Infrastructure.Tests.Servers.Runners.RemoveOttdServerRunnerShould

✅ NotExecuteForNonAdmin(userLevel: Moderator)
✅ NotExecuteForNonAdmin(userLevel: User)

✅ OpenttdDiscord.Infrastructure.Tests.Statuses.Runners.RegisterStatusMonitorRunnerShould

✅ NotExecuteForNonAdmin(userLevel: Moderator)
✅ NotExecuteForNonAdmin(userLevel: User)

✅ OpenttdDiscord.Infrastructure.Tests.Statuses.Runners.RemoveStatusMonitorRunnerShould

✅ NotExecuteForNonAdmin(userLevel: Moderator)
✅ NotExecuteForNonAdmin(userLevel: User)

✅ OpenttdDiscord.Infrastructure.Tests.Statuses.UseCases.RegisterStatusMonitorUseCaseShould

✅ DeleteEmbeddedMessage_WhenActorRegistrationInSystemGoesWrong
✅ DeleteEmbeddedMessage_WhenDatabaseInsertionGoesWrong
✅ InformGuildActorAboutRegistration
✅ InsertStatusMonitorInfoIntoRepository

✅ /home/runner/work/OpenttdDiscord/OpenttdDiscord/TestResults/OpenttdDiscord.Validation.Tests/OpenttdDiscord.Validation.Tests.trx

30 tests were completed in 5s with 30 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
OpenttdDiscord.Validation.Tests.Ottd.OttdServerValidatorShould 30✅ 90ms

✅ OpenttdDiscord.Validation.Tests.Ottd.OttdServerValidatorShould

✅ AllowCorrectIpAddress(ip: "::")
✅ AllowCorrectIpAddress(ip: "1.2.3.4")
✅ AllowCorrectIpAddress(ip: "2001:0db8:0001:0000:0000:0ab9:C0A8:0102")
✅ AllowCorrectIpAddress(ip: "2001:db8::")
✅ AllowCorrectIpAddress(ip: "2001:db8:1::ab9:C0A8:102")
✅ AllowCorrectIpAddress(ip: "2001:db8:3333:4444:CCCC:DDDD:EEEE:FFFF")
✅ AllowCorrectIpAddress(ip: "21.37.69.42")
✅ AllowCorrectIpAddress(ip: "684D:1111:222:3333:4444:5555:6:77")
✅ AllowCorrectPorts_ForAdminPort(port: 0)
✅ AllowCorrectPorts_ForAdminPort(port: 2137)
✅ AllowCorrectPorts_ForAdminPort(port: 420)
✅ AllowCorrectPorts_ForAdminPort(port: 65536)
✅ AllowCorrectPorts_ForAdminPort(port: 69)
✅ DisallowCorrectIpAddress(ip: " 2001:0db8:0001:0000:0000:0ab9:C0A8:0102")
✅ DisallowCorrectIpAddress(ip: " 2001:db8:3333:4444:CCCC:DDDD:EEEE:FFFF")
✅ DisallowCorrectIpAddress(ip: " 684D:1111:222:3333:4444:5555:6:77")
✅ DisallowCorrectIpAddress(ip: ":: ")
✅ DisallowCorrectIpAddress(ip: ":::")
✅ DisallowCorrectIpAddress(ip: "....")
✅ DisallowCorrectIpAddress(ip: "1.2.3.4 ")
✅ DisallowCorrectIpAddress(ip: "2001:db8:: ")
✅ DisallowCorrectIpAddress(ip: "2001:db8:1::ab9:C0A8:102 ")
✅ DisallowCorrectIpAddress(ip: "21.37.69.42 ")
✅ DisallowCorrectIpAddress(ip: "256.256.256.256")
✅ DisallowCorrectIpAddress(ip: "That's not an ip address. :D")
✅ DisallowEmptyPassword_WhenPortIsPresent
✅ DisallowIncorrectPort_ForAdminPort(port: -1)
✅ DisallowIncorrectPort_ForAdminPort(port: 65537)
✅ DisallowWrongNames(name: "")
✅ DisallowWrongNames(name: "12348h23rg8912348h23rg89rebe9rvbe9b12348h23rg89reb"···)