Add tests for player actions

This commit is contained in:
Major-
2018-08-20 22:01:09 +01:00
parent d4de32c82c
commit 2080e1e700
6 changed files with 76 additions and 23 deletions
@@ -0,0 +1,34 @@
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." }
}
}