public void Activate_InitializesTagHelpersWithMultipleInitializers()
        {
            // Arrange
            var services = new ServiceCollection();
            var builder  = new MvcCoreBuilder(services);

            builder.InitializeTagHelper <TestTagHelper>((h, vc) =>
            {
                h.Name   = "Test 1";
                h.Number = 100;
            });
            builder.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();
            var builder  = new MvcCoreBuilder(services);

            builder.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);
        }
        public void Activate_InitializesTagHelpersWithCorrectInitializers()
        {
            // Arrange
            var services = new ServiceCollection();
            var builder  = new MvcCoreBuilder(services);

            builder.InitializeTagHelper <TestTagHelper>((h, vc) =>
            {
                h.Name   = "Test 1";
                h.Number = 100;
            });
            builder.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);
        }
Exemple #4
0
        public void ImageTagHelper_DoesNotUseMemoryCacheInstanceFromDI()
        {
            // Arrange
            var activator   = new DefaultTagHelperActivator(new TypeActivatorCache());
            var viewContext = CreateViewContext();

            var imageTagHelper = activator.Create <ImageTagHelper>(viewContext);

            Assert.Same(CacheProvider.Cache, imageTagHelper.Cache);
            Assert.Same(HostingEnvironment, imageTagHelper.HostingEnvironment);
        }
        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 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);
        }
        public void Activate_InitializesTagHelpersAfterActivatingProperties()
        {
            // Arrange
            var services = new ServiceCollection();
            var builder  = new MvcCoreBuilder(services);

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