public static void FireEvent(this Page myPage, WebFormEvent e, EventArgs args)
        {
            Dictionary <WebFormEvent, bool> _EventsTriggered = new Dictionary <WebFormEvent, bool>();

            if (myPage.Items.Contains("eventsTriggered"))
            {
                _EventsTriggered = myPage.Items["eventsTriggered"] as Dictionary <WebFormEvent, bool>;
            }

            if (_EventsTriggered.ContainsKey(e))
            {
                throw new InvalidOperationException($"Previously triggered the {e.ToString()} event");
            }

            _EventsTriggered.Add(e, true);
            myPage.Items["eventsTriggered"] = _EventsTriggered;

            string methodName = "";

            switch (e)
            {
            case WebFormEvent.Init:
                //methodName = "OnInit";
                break;

            case WebFormEvent.Load:
                methodName = "OnLoad";
                break;

            case WebFormEvent.PreRender:
                methodName = "OnPreRender";
                break;

            case WebFormEvent.Unload:
                methodName = "OnUnload";
                break;

            default:
                break;
            }

            if (methodName == string.Empty)
            {
                return;
            }

            var thisMethod = _Type.GetMethod(methodName, BindingFlags.Instance | BindingFlags.NonPublic);

            thisMethod.Invoke(myPage, new object[] { args });
        }
示例#2
0
        public void StopAtCorrectEvent(WebFormEvent evt)
        {
            // Arrange
            base.context.SetupGet(c => c.IsDebuggingEnabled).Returns(true);

            // Act
            var sut = WebApplicationProxy.GetPageByLocation <Web.Scenarios.RunToEvent.VerifyOrder>("/Scenarios/RunToEvent/VerifyOrder.aspx");

            sut.RunToEvent(evt);

            // Assert
            int eventCount = (int)evt;

            Assert.Equal(eventCount, sut.EventList.Count);
        }
        public static void RunToEvent(this Page myPage, WebFormEvent evt = WebFormEvent.None)
        {
            myPage.FireEvent(WebFormEvent.Init);
            if (evt == WebFormEvent.Init)
            {
                return;
            }

            myPage.FireEvent(WebFormEvent.Load);
            if (evt == WebFormEvent.Load)
            {
                return;
            }

            myPage.FireEvent(WebFormEvent.PreRender);
            if (evt == WebFormEvent.PreRender)
            {
                return;
            }

            myPage.FireEvent(WebFormEvent.Unload);
        }
 public static void FireEvent(this Page myPage, WebFormEvent e)
 {
     myPage.FireEvent(e, EventArgs.Empty);
 }