123456789101112131415161718192021222324252627282930313233 |
- using Jint.Runtime.Interop;
- namespace Jint.Tests.Runtime;
- public class DelegateWrapperTests
- {
- [Fact]
- public void ShouldSpreadParameters()
- {
- var engine = new Engine();
- engine.SetValue("registerCallback", new DelegateWrapper(engine, new RegisterCallbackDelegate(RegisterCallback)));
- engine.Execute(@"
- var argsConcat = '';
- registerCallback((valTest, valOther, valNumber) => {
- argsConcat+=typeof valTest;
- argsConcat+=' ' + typeof valOther;
- argsConcat+=' ' + typeof valNumber;
- }, 'test', 'other', 1337);
- ");
- Assert.True(engine.Evaluate("argsConcat == 'string string number'").AsBoolean());
- }
- private static void RegisterCallback(CallbackAction callback, params object[] arguments)
- {
- callback.Invoke(arguments);
- }
- private delegate void RegisterCallbackDelegate(CallbackAction callback, params object[] arguments);
- private delegate void CallbackAction(params object[] arguments);
- }
|