Skip to content

Commit

Permalink
Fix tests failing on unsupported versions
Browse files Browse the repository at this point in the history
  • Loading branch information
UnderscoreTud committed Nov 15, 2024

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
1 parent 65ad357 commit 2411457
Showing 5 changed files with 46 additions and 65 deletions.
Original file line number Diff line number Diff line change
@@ -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;
}

}
Original file line number Diff line number Diff line change
@@ -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;
}

}
Original file line number Diff line number Diff line change
@@ -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;
}

}
33 changes: 33 additions & 0 deletions src/test/java/org/skriptlang/skript/test/utils/InputHelper.java
Original file line number Diff line number Diff line change
@@ -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;
}

}
1 change: 1 addition & 0 deletions src/test/skript/junit/EvtPlayerInput.sk
Original file line number Diff line number Diff line change
@@ -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"

0 comments on commit 2411457

Please sign in to comment.