Skip to content

Commit

Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Fix tests failing on unsupported versions
Browse files Browse the repository at this point in the history
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.