public void GenerateKey_WithMultipleVaryByOptions_CreatesCombinedKey() { // Arrange var name = "some-name"; var expected = GetHashedBytes("DistributedCacheTagHelper||some-name||VaryBy||custom-value||" + "VaryByHeader(content-type||text/html)||VaryByUser||someuser"); var tagHelperContext = GetTagHelperContext(); var cacheTagHelper = new DistributedCacheTagHelper( Mock.Of <IDistributedCacheTagHelperService>(), new HtmlTestEncoder()) { ViewContext = GetViewContext(), VaryByUser = true, VaryByHeader = "content-type", VaryBy = "custom-value", Name = name }; cacheTagHelper.ViewContext.HttpContext.Request.Headers["Content-Type"] = "text/html"; var identity = new ClaimsIdentity(new[] { new Claim(ClaimsIdentity.DefaultNameClaimType, "someuser") }); cacheTagHelper.ViewContext.HttpContext.User = new ClaimsPrincipal(identity); // Act var key = cacheTagHelper.GenerateKey(tagHelperContext); // Assert Assert.Equal(expected, key); }
public void GenerateKey_UsesVaryByHeader(string varyByHeader, string expected) { // Arrange var name = "some-name"; var tagHelperContext = GetTagHelperContext(); var cacheTagHelper = new DistributedCacheTagHelper( Mock.Of <IDistributedCacheTagHelperService>(), new HtmlTestEncoder()) { ViewContext = GetViewContext(), VaryByHeader = varyByHeader, Name = name }; var headers = cacheTagHelper.ViewContext.HttpContext.Request.Headers; headers["Accept-Language"] = "en-us;charset=utf8"; headers["Accept-Encoding"] = "utf8"; headers["X-CustomHeader"] = "Header-Value"; // Act var key = cacheTagHelper.GenerateKey(tagHelperContext); // Assert Assert.Equal(GetHashedBytes(expected), key); }
public void GenerateKey_ReturnsKeyBasedOnTagHelperName() { // Arrange var name = "some-name"; var tagHelperContext = GetTagHelperContext(); var cacheTagHelper = new DistributedCacheTagHelper( Mock.Of <IDistributedCacheTagHelperService>(), new HtmlTestEncoder()) { ViewContext = GetViewContext(), Name = name }; var expected = GetHashedBytes("DistributedCacheTagHelper||" + name); // Act var key = cacheTagHelper.GenerateKey(tagHelperContext); // Assert Assert.Equal(expected, key); }
public void GenerateKey_UsesVaryByPropertyToGenerateKey(string varyBy) { // Arrange var name = "some-name"; var tagHelperContext = GetTagHelperContext(); var cacheTagHelper = new DistributedCacheTagHelper( Mock.Of <IDistributedCacheTagHelperService>(), new HtmlTestEncoder()) { ViewContext = GetViewContext(), VaryBy = varyBy, Name = name }; var expected = GetHashedBytes("DistributedCacheTagHelper||some-name||VaryBy||" + varyBy); // Act var key = cacheTagHelper.GenerateKey(tagHelperContext); // Assert Assert.Equal(expected, key); }
public void GenerateKey_UsesVaryByUser_WhenUserIsNotAuthenticated() { // Arrange var name = "some-name"; var expected = "DistributedCacheTagHelper||some-name||VaryByUser||"; var tagHelperContext = GetTagHelperContext(); var cacheTagHelper = new DistributedCacheTagHelper( Mock.Of <IDistributedCacheTagHelperService>(), new HtmlTestEncoder()) { ViewContext = GetViewContext(), VaryByUser = true, Name = name }; // Act var key = cacheTagHelper.GenerateKey(tagHelperContext); // Assert Assert.Equal(GetHashedBytes(expected), key); }
public void GenerateKey_UsesVaryByCookieName(string varyByCookie, string expected) { // Arrange var name = "some-name"; var tagHelperContext = GetTagHelperContext(); var cacheTagHelper = new DistributedCacheTagHelper( Mock.Of <IDistributedCacheTagHelperService>(), new HtmlTestEncoder()) { ViewContext = GetViewContext(), VaryByCookie = varyByCookie, Name = name }; cacheTagHelper.ViewContext.HttpContext.Request.Headers["Cookie"] = "Cookie0=Cookie0Value;Cookie1=Cookie1Value"; // Act var key = cacheTagHelper.GenerateKey(tagHelperContext); // Assert Assert.Equal(GetHashedBytes(expected), key); }
public void GenerateKey_UsesVaryByRoute(string varyByRoute, string expected) { // Arrange var name = "some-name"; var tagHelperContext = GetTagHelperContext(); var cacheTagHelper = new DistributedCacheTagHelper( Mock.Of <IDistributedCacheTagHelperService>(), new HtmlTestEncoder()) { ViewContext = GetViewContext(), VaryByRoute = varyByRoute, Name = name }; cacheTagHelper.ViewContext.RouteData.Values["id"] = 4; cacheTagHelper.ViewContext.RouteData.Values["category"] = "MyCategory"; // Act var key = cacheTagHelper.GenerateKey(tagHelperContext); // Assert Assert.Equal(GetHashedBytes(expected), key); }
public void GenerateKey_UsesVaryByQuery(string varyByQuery, string expected) { // Arrange var name = "some-name"; var tagHelperContext = GetTagHelperContext(); var cacheTagHelper = new DistributedCacheTagHelper( Mock.Of <IDistributedCacheTagHelperService>(), new HtmlTestEncoder()) { ViewContext = GetViewContext(), VaryByQuery = varyByQuery, Name = name }; cacheTagHelper.ViewContext.HttpContext.Request.QueryString = new QueryString("?sortoption=Adorability&Category=cats&sortOrder="); // Act var key = cacheTagHelper.GenerateKey(tagHelperContext); // Assert Assert.Equal(GetHashedBytes(expected), key); }
public void GenerateKey_UsesVaryByUserAndAuthenticatedUserName() { // Arrange var name = "some-name"; var expected = "DistributedCacheTagHelper||some-name||VaryByUser||test_name"; var tagHelperContext = GetTagHelperContext(); var cacheTagHelper = new DistributedCacheTagHelper( Mock.Of <IDistributedCacheTagHelperService>(), new HtmlTestEncoder()) { ViewContext = GetViewContext(), VaryByUser = true, Name = name }; var identity = new ClaimsIdentity(new[] { new Claim(ClaimsIdentity.DefaultNameClaimType, "test_name") }); cacheTagHelper.ViewContext.HttpContext.User = new ClaimsPrincipal(identity); // Act var key = cacheTagHelper.GenerateKey(tagHelperContext); // Assert Assert.Equal(GetHashedBytes(expected), key); }