public void Activate_InitializesTagHelpersWithMultipleInitializers() { // Arrange var services = new ServiceCollection(); services.InitializeTagHelper<TestTagHelper>((h, vc) => { h.Name = "Test 1"; h.Number = 100; }); services.InitializeTagHelper<TestTagHelper>((h, vc) => { h.Name += ", Test 2"; h.Number += 100; }); var httpContext = MakeHttpContext(services.BuildServiceProvider()); var viewContext = MakeViewContext(httpContext); var activator = new DefaultTagHelperActivator(); var helper = new TestTagHelper(); // Act activator.Activate(helper, viewContext); // Assert Assert.Equal("Test 1, Test 2", helper.Name); Assert.Equal(200, helper.Number); }
public void Activate_InitializesTagHelpers(string name, int number) { // Arrange var services = new ServiceCollection(); services.InitializeTagHelper<TestTagHelper>((h, vc) => { h.Name = name; h.Number = number; h.ViewDataValue = vc.ViewData["TestData"]; }); var httpContext = MakeHttpContext(services.BuildServiceProvider()); var viewContext = MakeViewContext(httpContext); var viewDataValue = new object(); viewContext.ViewData.Add("TestData", viewDataValue); var activator = new DefaultTagHelperActivator(); var helper = new TestTagHelper(); // Act activator.Activate(helper, viewContext); // Assert Assert.Equal(name, helper.Name); Assert.Equal(number, helper.Number); Assert.Same(viewDataValue, helper.ViewDataValue); }
private static TestRazorPage CreateTestRazorPage() { var modelMetadataProvider = new EmptyModelMetadataProvider(); var modelExpressionProvider = new ModelExpressionProvider(modelMetadataProvider, new ExpressionTextCache()); var activator = new RazorPageActivator( modelMetadataProvider, new UrlHelperFactory(), new JsonHelper( new JsonOutputFormatter(new JsonSerializerSettings(), ArrayPool <char> .Shared), ArrayPool <char> .Shared), new DiagnosticListener("Microsoft.AspNetCore"), new HtmlTestEncoder(), modelExpressionProvider); var serviceProvider = new Mock <IServiceProvider>(); var typeActivator = new TypeActivatorCache(); var tagHelperActivator = new DefaultTagHelperActivator(typeActivator); var myService = new MyService(); serviceProvider.Setup(mock => mock.GetService(typeof(MyService))) .Returns(myService); serviceProvider.Setup(mock => mock.GetService(typeof(ITagHelperFactory))) .Returns(new DefaultTagHelperFactory(tagHelperActivator)); serviceProvider.Setup(mock => mock.GetService(typeof(ITagHelperActivator))) .Returns(tagHelperActivator); serviceProvider.Setup(mock => mock.GetService(typeof(ITypeActivatorCache))) .Returns(typeActivator); serviceProvider.Setup(mock => mock.GetService(It.Is <Type>(serviceType => serviceType.GetTypeInfo().IsGenericType&& serviceType.GetGenericTypeDefinition() == typeof(IEnumerable <>)))) .Returns <Type>(serviceType => { var enumerableType = serviceType.GetGenericArguments().First(); return(typeof(Enumerable).GetMethod("Empty").MakeGenericMethod(enumerableType).Invoke(null, null)); }); var httpContext = new Mock <HttpContext>(); httpContext.SetupGet(c => c.RequestServices) .Returns(serviceProvider.Object); var actionContext = new ActionContext(httpContext.Object, new RouteData(), new ActionDescriptor()); var viewData = new ViewDataDictionary(new EmptyModelMetadataProvider(), new ModelStateDictionary()); var viewContext = new ViewContext( actionContext, Mock.Of <IView>(), viewData, Mock.Of <ITempDataDictionary>(), TextWriter.Null, new HtmlHelperOptions()); return(new TestRazorPage { ViewContext = viewContext }); }
public void LinkTagHelper_DoesNotUseMemoryCacheInstanceFromDI() { // Arrange var activator = new DefaultTagHelperActivator(); var viewContext = CreateViewContext(); var linkTagHelper = activator.Create <LinkTagHelper>(viewContext); Assert.Same(CacheProvider.Cache, linkTagHelper.Cache); Assert.Same(HostingEnvironment, linkTagHelper.HostingEnvironment); Assert.Same(FileVersionProvider, linkTagHelper.FileVersionProvider); }
public void Activate_InitializesTagHelpersAfterActivatingProperties() { // Arrange var services = new ServiceCollection(); services.InitializeTagHelper<TestTagHelper>((h, _) => h.ViewContext = MakeViewContext(MakeHttpContext())); var httpContext = MakeHttpContext(services.BuildServiceProvider()); var viewContext = MakeViewContext(httpContext); var activator = new DefaultTagHelperActivator(); var helper = new TestTagHelper(); // Act activator.Activate(helper, viewContext); // Assert Assert.NotSame(viewContext, helper.ViewContext); }
public void CreateTagHelper_InitializesTagHelpers() { // Arrange var httpContext = new DefaultHttpContext() { RequestServices = new ServiceCollection().BuildServiceProvider() }; var viewContext = MakeViewContext(httpContext); var viewDataValue = new object(); viewContext.ViewData.Add("TestData", viewDataValue); var activator = new DefaultTagHelperActivator(new TypeActivatorCache()); // Act var helper = activator.Create<TestTagHelper>(viewContext); // Assert Assert.NotNull(helper); }
private static TestRazorPage CreateTestRazorPage() { var activator = new RazorPageActivator(new EmptyModelMetadataProvider()); var serviceProvider = new Mock <IServiceProvider>(); var typeActivator = new TypeActivatorCache(); var tagHelperActivator = new DefaultTagHelperActivator(typeActivator); var myService = new MyService(); serviceProvider.Setup(mock => mock.GetService(typeof(MyService))) .Returns(myService); serviceProvider.Setup(mock => mock.GetService(typeof(ITagHelperFactory))) .Returns(new DefaultTagHelperFactory(tagHelperActivator)); serviceProvider.Setup(mock => mock.GetService(typeof(ITagHelperActivator))) .Returns(tagHelperActivator); serviceProvider.Setup(mock => mock.GetService(typeof(ITypeActivatorCache))) .Returns(typeActivator); serviceProvider.Setup(mock => mock.GetService(It.Is <Type>(serviceType => serviceType.GetTypeInfo().IsGenericType&& serviceType.GetGenericTypeDefinition() == typeof(IEnumerable <>)))) .Returns <Type>(serviceType => { var enumerableType = serviceType.GetGenericArguments().First(); return(typeof(Enumerable).GetMethod("Empty").MakeGenericMethod(enumerableType).Invoke(null, null)); }); var httpContext = new Mock <HttpContext>(); httpContext.SetupGet(c => c.RequestServices) .Returns(serviceProvider.Object); var actionContext = new ActionContext(httpContext.Object, new RouteData(), new ActionDescriptor()); var viewData = new ViewDataDictionary(new EmptyModelMetadataProvider()); var viewContext = new ViewContext( actionContext, Mock.Of <IView>(), viewData, Mock.Of <ITempDataDictionary>(), TextWriter.Null, new HtmlHelperOptions()); return(new TestRazorPage { ViewContext = viewContext }); }
public void CreateTagHelper_InitializesTagHelpers() { // Arrange var httpContext = new DefaultHttpContext() { RequestServices = new ServiceCollection().BuildServiceProvider() }; var viewContext = MakeViewContext(httpContext); var viewDataValue = new object(); viewContext.ViewData.Add("TestData", viewDataValue); var activator = new DefaultTagHelperActivator(); // Act var helper = activator.Create <TestTagHelper>(viewContext); // Assert Assert.NotNull(helper); }
public void Activate_InitializesTagHelpersWithCorrectInitializers() { // Arrange var services = new ServiceCollection(); services.InitializeTagHelper<TestTagHelper>((h, vc) => { h.Name = "Test 1"; h.Number = 100; }); services.InitializeTagHelper<AnotherTestTagHelper>((h, vc) => { h.Name = "Test 2"; h.Number = 102; }); var httpContext = MakeHttpContext(services.BuildServiceProvider()); var viewContext = MakeViewContext(httpContext); var activator = new DefaultTagHelperActivator(); var testTagHelper = new TestTagHelper(); var anotherTestTagHelper = new AnotherTestTagHelper(); // Act activator.Activate(testTagHelper, viewContext); activator.Activate(anotherTestTagHelper, viewContext); // Assert Assert.Equal("Test 1", testTagHelper.Name); Assert.Equal(100, testTagHelper.Number); Assert.Equal("Test 2", anotherTestTagHelper.Name); Assert.Equal(102, anotherTestTagHelper.Number); }