Files
apollo/game/plugin/entity/player-action/test/PlayerActionTests.kt
T
2018-08-21 16:10:52 +01:00

34 lines
1.3 KiB
Kotlin

package org.apollo.game.plugin.entity.player_action
import io.mockk.verify
import org.apollo.game.message.impl.SetPlayerActionMessage
import org.apollo.game.model.entity.Player
import org.apollo.game.plugin.testing.junit.ApolloTestingExtension
import org.apollo.game.plugin.testing.junit.api.annotations.TestMock
import org.junit.jupiter.api.Assertions.assertFalse
import org.junit.jupiter.api.Assertions.assertTrue
import org.junit.jupiter.api.extension.ExtendWith
import org.junit.jupiter.params.ParameterizedTest
import org.junit.jupiter.params.provider.EnumSource
@ExtendWith(ApolloTestingExtension::class)
class PlayerActionTests {
@TestMock
lateinit var player: Player
@ParameterizedTest
@EnumSource(PlayerActionType::class)
fun `enabling and disabling PlayerActions sends SetPlayerActionMessages`(type: PlayerActionType) {
player.enableAction(type)
verify { player.send(eq(SetPlayerActionMessage(type.displayName, type.slot, type.primary))) }
assertTrue(player.actionEnabled(type)) { "Action $type should have been enabled, but was not." }
player.disableAction(type)
verify { player.send(eq(SetPlayerActionMessage("null", type.slot, type.primary))) }
assertFalse(player.actionEnabled(type)) { "Action $type should not have been enabled, but was." }
}
}