public void test_manually_invoke_targets()
    {
        var instance = new DeferredEventListener();
        var count    = 0;
        var target   = new TestEvent();

        instance.AddSupportedType <TestEvent>();

        instance.AddEventHandler <TestEvent>((ep) =>
                                             { if (ep == target)
                                               {
                                                   count += 1;
                                               }
                                             });

        instance.AddEventHandler <TestEvent>((ep) =>
                                             { if (ep == target)
                                               {
                                                   count += 1;
                                               }
                                             });

        foreach (var handler in instance.Handlers)
        {
            handler.localHandler(target);
        }

        Assert(count == 2);
        Assert(instance.Count == 0);
    }
示例#2
0
        /// Factory to use to create groups
        protected override IEventListener EventListenerFor(System.Type T)
        {
            var rtn = new DeferredEventListener();

            rtn.AddSupportedType(T);
            return(rtn);
        }
    public void test_add_handler_during_event()
    {
        var instance = new DeferredEventListener();
        var count    = 0;
        var target   = new TestEvent();

        instance.AddSupportedType <TestEvent>();
        instance.AddEventHandler <TestEvent>((ep) =>
        {
            count = 10;
            instance.AddEventHandler <TestEvent>((ep2) => { count = 100; }, 1f);
        }, 1f);
        Assert(instance.Count == 1);
        instance.Step(1f);

        foreach (var handler in instance.Handlers)
        {
            handler.localHandler(target);
        }

        Assert(instance.Count == 1);
        instance.Step(1f);

        foreach (var handler in instance.Handlers)
        {
            handler.localHandler(target);
        }

        Assert(instance.Count == 0);
        Assert(count == 100);
    }
    public void test_deferred_task()
    {
        var instance = new DeferredEventListener();
        var count = 0;
        var target = new TestEvent();
        instance.AddSupportedType<TestEvent>();

        instance.AddEventHandler<TestEvent>((ep) =>
        { if (ep == target) { count += 1; } }, 2f);

        instance.AddEventHandler<TestEvent>((ep) =>
        { if (ep == target) { count += 1; } }, 4f);

        foreach (var handler in instance.Handlers) { handler.localHandler(target); }
        Assert(count == 0);
        Assert(instance.Count == 2);

        instance.Step(2f);
        foreach (var handler in instance.Handlers) { handler.localHandler(target); }
        Assert(count == 1);
        Assert(instance.Count == 1);

        instance.Step(2f);
        foreach (var handler in instance.Handlers) { handler.localHandler(target); }
        Assert(count == 2);
        Assert(instance.Count == 0);
    }
    public void test_add_handler_during_event()
    {
        var instance = new DeferredEventListener();
        var count = 0;
        var target = new TestEvent();

        instance.AddSupportedType<TestEvent>();
        instance.AddEventHandler<TestEvent>((ep) =>
        {
            count = 10;
            instance.AddEventHandler<TestEvent>((ep2) => { count = 100; }, 1f);
        }, 1f);
        Assert(instance.Count == 1);
        instance.Step(1f);

        foreach (var handler in instance.Handlers) { handler.localHandler(target); }

        Assert(instance.Count == 1);
        instance.Step(1f);

        foreach (var handler in instance.Handlers) { handler.localHandler(target); }

        Assert(instance.Count == 0);
        Assert(count == 100);
    }
 public void test_add_event_handler()
 {
     var instance = new DeferredEventListener();
     instance.AddSupportedType<TestEvent>();
     instance.AddEventHandler<TestEvent>((ep) => { });
     instance.AddEventHandler<TestEvent>((ep) => { });
     Assert(instance.Count == 2);
 }
    public void test_add_event_handler()
    {
        var instance = new DeferredEventListener();

        instance.AddSupportedType <TestEvent>();
        instance.AddEventHandler <TestEvent>((ep) => { });
        instance.AddEventHandler <TestEvent>((ep) => { });
        Assert(instance.Count == 2);
    }
    public void test_reject_invalid_type()
    {
        var instance = new DeferredEventListener();

        try
        {
            instance.AddEventHandler <TestEvent>((ep) => { });
            Unreachable();
        }
        catch (EventException err)
        {
            Assert(err.errorCode == EventErrors.INVALID_HANDLER_TYPE);
        }
    }
 public void test_reject_invalid_type()
 {
     var instance = new DeferredEventListener();
     try
     {
         instance.AddEventHandler<TestEvent>((ep) => { });
         Unreachable();
     }
     catch (EventException err)
     {
         Assert(err.errorCode == EventErrors.INVALID_HANDLER_TYPE);
     }
 }