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."); }
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)); }
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); }
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); }
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); }