public void EveryFrameClear() { var game = new EventSystemTest(); var frameCount = 0; var evt = new EventKey(); game.AddTask(async() => { while (frameCount < 25) { evt.Broadcast(); evt.Broadcast(); await game.NextFrame(); } }, 10); game.AddTask(async() => { var rcv = new EventReceiver(evt, EventReceiverOptions.Buffered); while (frameCount < 25) { if (frameCount == 20) { var manyEvents = rcv.TryReceiveAll(); Assert.Equal(2, manyEvents); game.Exit(); } rcv.Reset(); await game.NextFrame(); frameCount++; } }, -10); game.Run(); }
public void DelayedReceiverCreation() { var game = new EventSystemTest(); var frameCount = 0; game.AddTask(async() => { var evt = new EventKey(); EventReceiver rcv = null; while (frameCount < 25) { if (frameCount == 5) { evt.Broadcast(); } if (frameCount == 20) { rcv = new EventReceiver(evt); Assert.False(rcv.TryReceive()); evt.Broadcast(); } if (frameCount == 22) { Assert.NotNull(rcv); Assert.True(rcv.TryReceive()); game.Exit(); } await game.NextFrame(); frameCount++; } }); game.Run(); }