コード例 #1
0
        /// <summary />
        public void ProcessRequest(HttpContext context)
        {
            var presenterBinder = new PresenterBinder(this, context);

            presenterBinder.PerformBinding();

            OnLoad();

            presenterBinder.Release();
        }
コード例 #2
0
        public void PresenterBinder_MessageCoordinator_ShouldReturnInstance()
        {
            // Arrange
            var host         = new object();
            var httpContext  = MockRepository.GenerateMock <HttpContextBase>();
            var traceContext = MockRepository.GenerateMock <ITraceContext>();

            // Act
            var binder = new PresenterBinder(new[] { host }, httpContext, traceContext);

            // Assert
            Assert.IsNotNull(binder.MessageCoordinator);
        }
コード例 #3
0
ファイル: PageViewHost.cs プロジェクト: gedeh/webformsmvp
        /// <summary>
        /// Initializes a new instance of the <see cref="PageViewHost"/> class.
        /// </summary>
        /// <param name="page">The page instance that this view host will be responsible for.</param>
        /// <param name="control"></param>
        /// <param name="httpContext">The owning HTTP context.</param>
        public PageViewHost(Page page, Control control, HttpContext httpContext)
        {
            if (page == null)
            {
                throw new ArgumentNullException("page");
            }

            if (control == null)
            {
                throw new ArgumentNullException("control");
            }

            if (httpContext == null)
            {
                throw new ArgumentNullException("httpContext");
            }

            var traceContext = new TraceContextAdapter(httpContext.Trace);

            traceContext.Write(this, () => "Creating new PageViewHost instance.");

            var hosts = FindHosts(page, traceContext).ToArray();

            presenterBinder = new PresenterBinder(hosts, httpContext);

            var asyncManager = new PageAsyncTaskManagerWrapper(page);

            presenterBinder.PresenterCreated += (sender, args) =>
            {
                var presenter = args.Presenter;

                traceContext.Write(this, () => string.Format(
                                       CultureInfo.InvariantCulture,
                                       "Setting AsyncManager on presenter of type {0}.",
                                       presenter.GetType().FullName));

                presenter.AsyncManager = asyncManager;
            };

            traceContext.Write(this, () => "Subscribing PageViewHost to Control.Init event.");
            control.Init += Control_Init;

            traceContext.Write(this, () => "Subscribing PageViewHost to Page.PreRenderComplete event.");
            page.PreRenderComplete += Page_PreRenderComplete;

            traceContext.Write(this, () => "Subscribing PageViewHost to Page.Unload event.");
            page.Unload += Page_Unload;
        }
コード例 #4
0
        public void PresenterBinder_CreateCompositeView_ShouldAddEachViewToComposite()
        {
            // Arrange
            var views = new[]
            {
                MockRepository.GenerateMock <IView>(),
                MockRepository.GenerateMock <IView>()
            };
            var traceContext = MockRepository.GenerateMock <ITraceContext>();

            // Act
            var compositeView = PresenterBinder.CreateCompositeView(typeof(IView), views, traceContext);

            // Assert
            CollectionAssert.AreEquivalent(views, ((CompositeView <IView>)compositeView).Views.ToList());
        }
コード例 #5
0
        public void PresenterBinder_CreateCompositeView_ShouldReturnInstanceOfCorrectType()
        {
            // Arrange
            var views = new[]
            {
                MockRepository.GenerateMock <IView <object> >(),
                MockRepository.GenerateMock <IView <object> >()
            };
            var traceContext = MockRepository.GenerateMock <ITraceContext>();

            // Act
            var compositeView = PresenterBinder.CreateCompositeView(typeof(IView <object>), views, traceContext);

            // Assert
            Assert.IsInstanceOf <ICompositeView>(compositeView);
            Assert.IsInstanceOf <CompositeView <IView <object> > >(compositeView);
        }
コード例 #6
0
 /// <summary />
 protected MvpWebService(bool throwExceptionIfNoPresenterBound)
 {
     this.throwExceptionIfNoPresenterBound = throwExceptionIfNoPresenterBound;
     presenterBinder = new PresenterBinder(this, HttpContext.Current);
     presenterBinder.PerformBinding();
 }
コード例 #7
0
 protected MvpCommand(bool throwIfNoPresenterBound)
 {
     _throwIfNoPresenterBound = throwIfNoPresenterBound;
     _presenterBinder         = PresenterBinderFactory.Create(this);
 }