Anton Tarasenko
2 years ago
4 changed files with 259 additions and 1 deletions
@ -0,0 +1,81 @@ |
|||||||
|
/** |
||||||
|
* Set of tests for `Command` class. |
||||||
|
* Copyright 2023 Anton Tarasenko |
||||||
|
*------------------------------------------------------------------------------ |
||||||
|
* This file is part of Acedia. |
||||||
|
* |
||||||
|
* Acedia is free software: you can redistribute it and/or modify |
||||||
|
* it under the terms of the GNU General Public License as published by |
||||||
|
* the Free Software Foundation, version 3 of the License, or |
||||||
|
* (at your option) any later version. |
||||||
|
* |
||||||
|
* Acedia is distributed in the hope that it will be useful, |
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||||
|
* GNU General Public License for more details. |
||||||
|
* |
||||||
|
* You should have received a copy of the GNU General Public License |
||||||
|
* along with Acedia. If not, see <https://www.gnu.org/licenses/>. |
||||||
|
*/ |
||||||
|
class TEST_VoiceMessages extends TestCase |
||||||
|
abstract |
||||||
|
dependsOn(ChatApi); |
||||||
|
|
||||||
|
private static function ChatApi.NativeVoiceMessage Make(name type, int index) { |
||||||
|
local ChatApi.NativeVoiceMessage result; |
||||||
|
|
||||||
|
result.type = type; |
||||||
|
result.index = index; |
||||||
|
return result; |
||||||
|
} |
||||||
|
|
||||||
|
private static function TestEquality(name type, int index, ChatApi.BuiltInVoiceMessage builtIn) { |
||||||
|
local ChatApi.NativeVoiceMessage nativeMessage; |
||||||
|
|
||||||
|
nativeMessage.type = type; |
||||||
|
nativeMessage.index = index; |
||||||
|
|
||||||
|
Issue("Native voice messages are incorrectly converted into `BuiltInVoiceMessage`."); |
||||||
|
TEST_ExpectTrue(__().chat._nativeVoiceMessageIntoEnum(nativeMessage) == builtIn); |
||||||
|
|
||||||
|
Issue("`BuiltInVoiceMessage`s are incorrectly converted into native voice messages."); |
||||||
|
TEST_ExpectTrue(__().chat._enumIntoNativeVoiceMessage(builtIn).type == type); |
||||||
|
TEST_ExpectTrue(__().chat._enumIntoNativeVoiceMessage(builtIn).index == index); |
||||||
|
} |
||||||
|
|
||||||
|
protected static function TESTS() { |
||||||
|
Context("Testing internal conversion methods between voice messages."); |
||||||
|
Test_VoiceMessageConversion(); |
||||||
|
} |
||||||
|
protected static function Test_VoiceMessageConversion() { |
||||||
|
local ChatApi.NativeVoiceMessage nothingMessage; |
||||||
|
|
||||||
|
nothingMessage.type = 'TRADER'; |
||||||
|
nothingMessage.index = 5; |
||||||
|
|
||||||
|
TestEquality('SUPPORT', 2, BIVM_SupportAskForMoney); |
||||||
|
TestEquality('ACK', 0, BIVM_AckYes); |
||||||
|
TestEquality('ALERT', 5, BIVM_AlretFollowMe); |
||||||
|
TestEquality('DIRECTION', 2, BIVM_DirectionGoDownstairs); |
||||||
|
TestEquality('INSULT', 1, BIVM_InsultPlayers); |
||||||
|
TestEquality('TRADER', 2, BIVM_TraderShopOpen); |
||||||
|
TestEquality('TRADER', 4, BIVM_Trader30SecondsUntilShopCloses); |
||||||
|
TestEquality('TRADER', 6, BIVM_TraderShopClosed); |
||||||
|
TestEquality('TRADER', 7, BIVM_TraderCompliment); |
||||||
|
TestEquality('TRADER', 11, BIVM_TraderHurryUp2); |
||||||
|
TestEquality('AUTO', 0, BIVM_AutoWelding); |
||||||
|
TestEquality('AUTO', 16, BIVM_AutoSirenScream); |
||||||
|
TestEquality('AUTO', 24, BIVM_AutoEquipFireaxe); |
||||||
|
|
||||||
|
// Test unknown separately |
||||||
|
Issue("Native voice messages are incorrectly converted into `BuiltInVoiceMessage`."); |
||||||
|
TEST_ExpectTrue(__().chat._nativeVoiceMessageIntoEnum(nothingMessage) == BIVM_Unknown); |
||||||
|
|
||||||
|
Issue("`BuiltInVoiceMessage`s are incorrectly converted into native voice messages."); |
||||||
|
TEST_ExpectTrue(__().chat._enumIntoNativeVoiceMessage(BIVM_Unknown).type == ''); |
||||||
|
TEST_ExpectTrue(__().chat._enumIntoNativeVoiceMessage(BIVM_Unknown).index == 0); |
||||||
|
} |
||||||
|
defaultproperties { |
||||||
|
caseName = "Voice messages" |
||||||
|
caseGroup = "ChatAPI" |
||||||
|
} |
Loading…
Reference in new issue