Пример #1
0
        public void CreateActivator_ThrowsIfPageTypeInfoIsNull()
        {
            // Arrange
            var descriptor = new CompiledPageActionDescriptor();
            var activator  = new DefaultPageActivatorProvider();

            // Act & Assert
            ExceptionAssert.ThrowsArgument(
                () => activator.CreateActivator(descriptor),
                "actionDescriptor",
                "The 'PageTypeInfo' property of 'actionDescriptor' must not be null.");
        }
Пример #2
0
        public void CreateActivator_ThrowsIfTypeDoesNotHaveParameterlessConstructor()
        {
            // Arrange
            var descriptor = new CompiledPageActionDescriptor
            {
                PageTypeInfo = typeof(PageWithoutParameterlessConstructor).GetTypeInfo(),
            };
            var pageContext = new PageContext();
            var activator   = new DefaultPageActivatorProvider();

            // Act & Assert
            Assert.Throws <ArgumentException>(() => activator.CreateActivator(descriptor));
        }
Пример #3
0
        public void CreateAsyncReleaser_ReturnsNullForPagesThatDoNotImplementDisposable(Type pageType)
        {
            // Arrange
            var context   = new PageContext();
            var activator = new DefaultPageActivatorProvider();
            var page      = new TestPage();

            // Act
            var releaser = activator.CreateAsyncReleaser(new CompiledPageActionDescriptor
            {
                PageTypeInfo = pageType.GetTypeInfo()
            });

            // Assert
            Assert.Null(releaser);
        }
Пример #4
0
        public async Task CreateAsyncReleaser_CreatesDelegateThatDisposesAsyncDisposableTypes()
        {
            // Arrange
            var context     = new PageContext();
            var viewContext = new ViewContext();
            var activator   = new DefaultPageActivatorProvider();
            var page        = new AsyncDisposablePage();

            // Act & Assert
            var disposer = activator.CreateAsyncReleaser(new CompiledPageActionDescriptor
            {
                PageTypeInfo = page.GetType().GetTypeInfo()
            });

            Assert.NotNull(disposer);
            await disposer(context, viewContext, page);

            // Assert
            Assert.True(page.Disposed);
        }
Пример #5
0
        public void CreateActivator_ReturnsFactoryForPage(Type type)
        {
            // Arrange
            var pageContext = new PageContext();
            var viewContext = new ViewContext();
            var descriptor  = new CompiledPageActionDescriptor
            {
                PageTypeInfo = type.GetTypeInfo(),
            };


            var activator = new DefaultPageActivatorProvider();

            // Act
            var factory  = activator.CreateActivator(descriptor);
            var instance = factory(pageContext, viewContext);

            // Assert
            Assert.NotNull(instance);
            Assert.IsType(type, instance);
        }