diff --git a/src/test/java/org/skriptlang/skript/test/tests/syntaxes/conditions/CondIsPressingKeyTest.java b/src/test/java/org/skriptlang/skript/test/tests/syntaxes/conditions/CondIsPressingKeyTest.java index d77dbff98dd..8461d01954d 100644 --- a/src/test/java/org/skriptlang/skript/test/tests/syntaxes/conditions/CondIsPressingKeyTest.java +++ b/src/test/java/org/skriptlang/skript/test/tests/syntaxes/conditions/CondIsPressingKeyTest.java @@ -5,13 +5,13 @@ import ch.njol.skript.lang.util.ContextlessEvent; import ch.njol.skript.test.runner.SkriptJUnitTest; import ch.njol.skript.variables.Variables; -import org.bukkit.Input; import org.bukkit.entity.Player; import org.easymock.EasyMock; import org.junit.Assert; import org.junit.Before; import org.junit.Test; import org.skriptlang.skript.bukkit.input.InputKey; +import org.skriptlang.skript.test.utils.InputHelper; public class CondIsPressingKeyTest extends SkriptJUnitTest { @@ -45,47 +45,30 @@ public void test() { Variables.setVariable("player", testPlayer, event, true); Variables.setVariable("input-keys::1", testInputKeys[0], event, true); - EasyMock.expect(testPlayer.getCurrentInput()).andReturn(fromKeys(testInputKeys)); + EasyMock.expect(testPlayer.getCurrentInput()).andReturn(InputHelper.fromKeys(testInputKeys)); EasyMock.replay(testPlayer); assert isPressingKeyCondition.check(event); EasyMock.verify(testPlayer); EasyMock.resetToNice(testPlayer); - EasyMock.expect(testPlayer.getCurrentInput()).andReturn(fromKeys(testInputKeys[1])); + EasyMock.expect(testPlayer.getCurrentInput()).andReturn(InputHelper.fromKeys(testInputKeys[1])); EasyMock.replay(testPlayer); assert !isPressingKeyCondition.check(event); EasyMock.verify(testPlayer); EasyMock.resetToNice(testPlayer); Variables.setVariable("input-keys::2", testInputKeys[1], event, true); - EasyMock.expect(testPlayer.getCurrentInput()).andReturn(fromKeys(testInputKeys)); + EasyMock.expect(testPlayer.getCurrentInput()).andReturn(InputHelper.fromKeys(testInputKeys)); EasyMock.replay(testPlayer); assert isPressingKeyCondition.check(event); EasyMock.verify(testPlayer); EasyMock.resetToNice(testPlayer); Variables.setVariable("input-keys::3", InputKey.SNEAK, event, true); - EasyMock.expect(testPlayer.getCurrentInput()).andReturn(fromKeys(testInputKeys)); + EasyMock.expect(testPlayer.getCurrentInput()).andReturn(InputHelper.fromKeys(testInputKeys)); EasyMock.replay(testPlayer); assert !isPressingKeyCondition.check(event); EasyMock.verify(testPlayer); } - private Input fromKeys(InputKey... keys) { - Input input = EasyMock.niceMock(Input.class); - for (InputKey key : keys) { - switch (key) { - case FORWARD -> EasyMock.expect(input.isForward()).andReturn(true); - case BACKWARD -> EasyMock.expect(input.isBackward()).andReturn(true); - case RIGHT -> EasyMock.expect(input.isRight()).andReturn(true); - case LEFT -> EasyMock.expect(input.isLeft()).andReturn(true); - case JUMP -> EasyMock.expect(input.isJump()).andReturn(true); - case SNEAK -> EasyMock.expect(input.isSneak()).andReturn(true); - case SPRINT -> EasyMock.expect(input.isSprint()).andReturn(true); - } - } - EasyMock.replay(input); - return input; - } - } diff --git a/src/test/java/org/skriptlang/skript/test/tests/syntaxes/events/EvtPlayerInputTest.java b/src/test/java/org/skriptlang/skript/test/tests/syntaxes/events/EvtPlayerInputTest.java index 4af60d2cff4..782b29f8ae0 100644 --- a/src/test/java/org/skriptlang/skript/test/tests/syntaxes/events/EvtPlayerInputTest.java +++ b/src/test/java/org/skriptlang/skript/test/tests/syntaxes/events/EvtPlayerInputTest.java @@ -3,13 +3,12 @@ import ch.njol.skript.Skript; import ch.njol.skript.test.runner.SkriptJUnitTest; import org.bukkit.Bukkit; -import org.bukkit.Input; import org.bukkit.entity.Player; -import org.bukkit.event.player.PlayerInputEvent; import org.easymock.EasyMock; import org.junit.Before; import org.junit.Test; import org.skriptlang.skript.bukkit.input.InputKey; +import org.skriptlang.skript.test.utils.InputHelper; public class EvtPlayerInputTest extends SkriptJUnitTest { @@ -32,29 +31,10 @@ public void setup() { public void test() { if (!SUPPORTS_INPUT_EVENT) return; - Input pastInput = fromKeys(InputKey.FORWARD); - Input futureInput = fromKeys(InputKey.FORWARD, InputKey.JUMP); - EasyMock.expect(player.getCurrentInput()).andStubReturn(pastInput); + EasyMock.expect(player.getCurrentInput()).andStubReturn(InputHelper.fromKeys(InputKey.FORWARD)); EasyMock.replay(player); - Bukkit.getPluginManager().callEvent(new PlayerInputEvent(player, futureInput)); + Bukkit.getPluginManager().callEvent(InputHelper.createPlayerInputEvent(player, InputKey.FORWARD, InputKey.JUMP)); EasyMock.verify(player); } - private Input fromKeys(InputKey... keys) { - Input input = EasyMock.niceMock(Input.class); - for (InputKey key : keys) { - switch (key) { - case FORWARD -> EasyMock.expect(input.isForward()).andStubReturn(true); - case BACKWARD -> EasyMock.expect(input.isBackward()).andStubReturn(true); - case RIGHT -> EasyMock.expect(input.isRight()).andStubReturn(true); - case LEFT -> EasyMock.expect(input.isLeft()).andStubReturn(true); - case JUMP -> EasyMock.expect(input.isJump()).andStubReturn(true); - case SNEAK -> EasyMock.expect(input.isSneak()).andStubReturn(true); - case SPRINT -> EasyMock.expect(input.isSprint()).andStubReturn(true); - } - } - EasyMock.replay(input); - return input; - } - } diff --git a/src/test/java/org/skriptlang/skript/test/tests/syntaxes/expressions/ExprCurrentInputKeysTest.java b/src/test/java/org/skriptlang/skript/test/tests/syntaxes/expressions/ExprCurrentInputKeysTest.java index ed667dc9bb3..06f57ca0ee3 100644 --- a/src/test/java/org/skriptlang/skript/test/tests/syntaxes/expressions/ExprCurrentInputKeysTest.java +++ b/src/test/java/org/skriptlang/skript/test/tests/syntaxes/expressions/ExprCurrentInputKeysTest.java @@ -1,17 +1,18 @@ package org.skriptlang.skript.test.tests.syntaxes.expressions; import ch.njol.skript.Skript; -import ch.njol.skript.lang.*; +import ch.njol.skript.lang.Expression; +import ch.njol.skript.lang.SkriptParser; import ch.njol.skript.lang.util.ContextlessEvent; import ch.njol.skript.test.runner.SkriptJUnitTest; import ch.njol.skript.variables.Variables; -import org.bukkit.Input; import org.bukkit.entity.Player; import org.easymock.EasyMock; import org.junit.Assert; import org.junit.Before; import org.junit.Test; import org.skriptlang.skript.bukkit.input.InputKey; +import org.skriptlang.skript.test.utils.InputHelper; public class ExprCurrentInputKeysTest extends SkriptJUnitTest { @@ -43,28 +44,11 @@ public void test() { ContextlessEvent event = ContextlessEvent.get(); Variables.setVariable("player", player, event, true); - EasyMock.expect(player.getCurrentInput()).andReturn(fromKeys(InputKey.FORWARD, InputKey.JUMP)); + EasyMock.expect(player.getCurrentInput()).andReturn(InputHelper.fromKeys(InputKey.FORWARD, InputKey.JUMP)); EasyMock.replay(player); InputKey[] keys = inputKeyExpression.getArray(event); Assert.assertArrayEquals(keys, new InputKey[]{InputKey.FORWARD, InputKey.JUMP}); EasyMock.verify(player); } - private Input fromKeys(InputKey... keys) { - Input input = EasyMock.niceMock(Input.class); - for (InputKey key : keys) { - switch (key) { - case FORWARD -> EasyMock.expect(input.isForward()).andReturn(true); - case BACKWARD -> EasyMock.expect(input.isBackward()).andReturn(true); - case RIGHT -> EasyMock.expect(input.isRight()).andReturn(true); - case LEFT -> EasyMock.expect(input.isLeft()).andReturn(true); - case JUMP -> EasyMock.expect(input.isJump()).andReturn(true); - case SNEAK -> EasyMock.expect(input.isSneak()).andReturn(true); - case SPRINT -> EasyMock.expect(input.isSprint()).andReturn(true); - } - } - EasyMock.replay(input); - return input; - } - } diff --git a/src/test/java/org/skriptlang/skript/test/utils/InputHelper.java b/src/test/java/org/skriptlang/skript/test/utils/InputHelper.java new file mode 100644 index 00000000000..b3ba4112a1b --- /dev/null +++ b/src/test/java/org/skriptlang/skript/test/utils/InputHelper.java @@ -0,0 +1,33 @@ +package org.skriptlang.skript.test.utils; + +import org.bukkit.Input; +import org.bukkit.entity.Player; +import org.bukkit.event.player.PlayerEvent; +import org.bukkit.event.player.PlayerInputEvent; +import org.easymock.EasyMock; +import org.skriptlang.skript.bukkit.input.InputKey; + +public class InputHelper { + + public static PlayerEvent createPlayerInputEvent(Player player, InputKey... keys) { + return new PlayerInputEvent(player, fromKeys(keys)); + } + + public static Input fromKeys(InputKey... keys) { + Input input = EasyMock.niceMock(Input.class); + for (InputKey key : keys) { + switch (key) { + case FORWARD -> EasyMock.expect(input.isForward()).andStubReturn(true); + case BACKWARD -> EasyMock.expect(input.isBackward()).andStubReturn(true); + case RIGHT -> EasyMock.expect(input.isRight()).andStubReturn(true); + case LEFT -> EasyMock.expect(input.isLeft()).andStubReturn(true); + case JUMP -> EasyMock.expect(input.isJump()).andStubReturn(true); + case SNEAK -> EasyMock.expect(input.isSneak()).andStubReturn(true); + case SPRINT -> EasyMock.expect(input.isSprint()).andStubReturn(true); + } + } + EasyMock.replay(input); + return input; + } + +} diff --git a/src/test/skript/junit/EvtPlayerInput.sk b/src/test/skript/junit/EvtPlayerInput.sk index 80eb6a633b5..90a5b1f4525 100644 --- a/src/test/skript/junit/EvtPlayerInput.sk +++ b/src/test/skript/junit/EvtPlayerInput.sk @@ -1,4 +1,5 @@ test "EvtPlayerInputJUnit" when running JUnit: + running minecraft "1.21.3" set {_tests::1} to "player is pressing event-inputkeys" set {_tests::2} to "inputs of player is event-inputkeys" set {_tests::3} to "past inputs of player is past event-inputkeys"