public void ReturnParameterSkipableTest() { var view = new ViewWithButton { BindingContext = new ViewModelSimleHandling() }; var behavior = new EventToMultipleHandlersBehavior() { EventName = "Clicked" }; var handlerWithReturn = new EventToMethodHandler <int> { MethodName = "MethodWithReturnInt" }; var delayHandler = new DelayEventHandler(); var handlerWithReturnParameter = new EventToMethodHandler { MethodName = "MethodWithParameterInt" }; var returnParameter = new ReturnParameter <int>(); handlerWithReturnParameter.Parameters.Add(returnParameter); behavior.Handlers.Add(handlerWithReturn); behavior.Handlers.Add(delayHandler); behavior.Handlers.Add(handlerWithReturnParameter); view.Button.Behaviors.Add(behavior); view.Button.SendClicked(); returnParameter.GetValue().Should().Be(9); view.BindingContext.GetFieldValue("_parameterValue").Should().Be(9); }
public DelayEvent(int _id, string _name, DelayEventHandler _handler) { id = _id; name = _name; handler = _handler; routine = null; destroyed = false; }
public void _Remove(DelayEventHandler handler) { if (handler == null) { return; } var ee = m_events.Find(e => e.handler.Target == handler.Target && e.handler.Method == handler.Method); if (ee != null) { ee.Destroy(); } }
public void DelayEventHandlerTest() { var handler = new DelayEventHandler(); Assert.True(handler is IAsyncRisible); Assert.True(handler is ISkipReturnable); Assert.False(handler is IRisible); Assert.False(handler is ICompositeHandler); Assert.False(handler is IAsyncGenericRisible); Assert.False(handler is IMethodExecutable); Assert.False(handler is IParameterContainer); Assert.False(handler is ICommandExecutable); Assert.False(handler is IGenericRisible); Assert.False(handler is ICompositeParallelHandler); }
public static DelayEvent Create(double delay, int id, string name, DelayEventHandler handler, bool useLogic) { var e = m_pool.Pop(); e.destroyed = false; e.delay = delay; e.id = id; e.name = name; e.handler = handler; e.handler1 = null; e.param1 = null; e.useLogicUpdate = useLogic; if (!e.useLogicUpdate) { e.routine = instance.StartCoroutine(instance.Wait((float)delay, e)); } instance.m_events.Add(e); return(e); }
public int _Add(DelayEventHandler handler, double delay, bool useLogicUpdate = false, string name = "") { if (handler == null) { return(0); } if (!string.IsNullOrEmpty(name)) { var ee = m_events.Find(d => d.name == name); if (ee != null) { ee.Destroy(); } } var e = DelayEvent.Create(delay, ++m_eventID, name, handler, useLogicUpdate); return(e.id); }
public static void Remove(DelayEventHandler handler) { instance._Remove(handler); }
public static int AddLogicDelay(DelayEventHandler handler, double delay, string name = "") { return(instance._Add(handler, delay, true, name)); }
public static int Add(DelayEventHandler handler, float delay, string name = "") { return(instance._Add(handler, delay, false, name)); }