mirror of
https://github.com/LSPosed/LSPlant.git
synced 2025-05-04 20:42:02 +08:00
Yet Another Unit Test for LSPlant
This commit is contained in:
parent
d99a17b449
commit
773af678e9
@ -71,4 +71,30 @@ public class UnitTest {
|
||||
Assert.assertFalse(new LSPTest().field);
|
||||
Assert.assertFalse(constructor.newInstance().field);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void t04_manyParametersMethod() throws NoSuchMethodException, InvocationTargetException, IllegalAccessException {
|
||||
var manyParametersMethod = LSPTest.class.getDeclaredMethod("manyParametersMethod", String.class, boolean.class, byte.class, short.class, int.class, long.class, float.class, double.class, Integer.class, Long.class);
|
||||
var manyParametersReplacement = Replacement.class.getDeclaredMethod("manyParametersReplacement", Hooker.MethodCallback.class);
|
||||
var a = "test";
|
||||
var b = true;
|
||||
var c = (byte) 114;
|
||||
var d = (short) 514;
|
||||
var e = 19;
|
||||
var f = 19L;
|
||||
var g = 810f;
|
||||
var h = 12345f;
|
||||
var o = a + b + c + d + e + f + g + h + e + f;
|
||||
var r = a + b + c + d + e + f + g + h + e + f + "replace";
|
||||
LSPTest test = new LSPTest();
|
||||
Assert.assertEquals(o, test.manyParametersMethod(a, b, c, d, e, f, g, h, e, f));
|
||||
|
||||
Hooker hooker = Hooker.hook(manyParametersMethod, manyParametersReplacement, new Replacement());
|
||||
Assert.assertNotNull(hooker);
|
||||
Assert.assertEquals(r, test.manyParametersMethod(a, b, c, d, e, f, g, h, e, f));
|
||||
Assert.assertEquals(o, hooker.backup.invoke(test, a, b, c, d, e, f, g, h, e, f));
|
||||
|
||||
Assert.assertTrue(hooker.unhook());
|
||||
Assert.assertEquals(o, test.manyParametersMethod(a, b, c, d, e, f, g, h, e, f));
|
||||
}
|
||||
}
|
||||
|
@ -21,4 +21,8 @@ public class LSPTest {
|
||||
String normalMethod(String a, int b, long c) {
|
||||
return a + b + c;
|
||||
}
|
||||
|
||||
String manyParametersMethod(String a, boolean b, byte c, short d, int e, long f, float g, double h, Integer i, Long j) {
|
||||
return a + b + c + d + e + f + g + h + i + j;
|
||||
}
|
||||
}
|
||||
|
@ -20,4 +20,18 @@ public class Replacement {
|
||||
callback.backup.invoke(test);
|
||||
test.field = true;
|
||||
}
|
||||
|
||||
String manyParametersReplacement(Hooker.MethodCallback callback) {
|
||||
var a = (String) callback.args[1];
|
||||
var b = (boolean) callback.args[2];
|
||||
var c = (byte) callback.args[3];
|
||||
var d = (short) callback.args[4];
|
||||
var e = (int) callback.args[5];
|
||||
var f = (long) callback.args[6];
|
||||
var g = (float) callback.args[7];
|
||||
var h = (double) callback.args[8];
|
||||
var i = (Integer) callback.args[9];
|
||||
var j = (Long) callback.args[10];
|
||||
return a + b + c + d + e + f + g + h + i + j + "replace";
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user