public void test_recursive_trigger() { var count = 0; var doneHandlerRun = false; var instance = new StreamedCollection(); instance.AddEventHandler <TestEvent>((ep) => { if (ep.id == 2) { doneHandlerRun = true; } else { ep.Api.Keep <TestEvent>(); } }); instance.AddEventHandler <TestEvent>((ep) => { if (ep.id == 1) { count += 1; if (count < 3) { ep.Api.Keep <TestEvent>(); ep.Api.Trigger(new TestEvent() { id = 1 }); } else { ep.Api.Trigger(new TestEvent() { id = 2 }); } } }); instance.Trigger(new TestEvent() { id = 1 }); Assert(doneHandlerRun); }
public void test_recursive_trigger() { var count = 0; var doneHandlerRun = false; var instance = new StreamedCollection(); instance.AddEventHandler<TestEvent>((ep) => { if (ep.id == 2) { doneHandlerRun = true; } else { ep.Api.Keep<TestEvent>(); } }); instance.AddEventHandler<TestEvent>((ep) => { if (ep.id == 1) { count += 1; if (count < 3) { ep.Api.Keep<TestEvent>(); ep.Api.Trigger(new TestEvent() { id = 1 }); } else { ep.Api.Trigger(new TestEvent() { id = 2 }); } } }); instance.Trigger(new TestEvent() { id = 1 }); Assert(doneHandlerRun); }