public void GetChildActionUniqueId_VariesByActionParameters_OnlyVariesByTheGivenParameters_MultipleSpecified_Whitespace_DifferentThird( string varyByParam, string value1, string value2) { // Arrange OutputCacheAttribute attr = new OutputCacheAttribute { VaryByParam = varyByParam }; MockActionExecutingContext context1 = new MockActionExecutingContext(); context1.ActionParameters["foo"] = "1"; context1.ActionParameters["bar"] = "2"; context1.ActionParameters["blap"] = value1; context1.ActionParameters["xyz"] = "abc"; MockActionExecutingContext context2 = new MockActionExecutingContext(); context2.ActionParameters["foo"] = "1"; context2.ActionParameters["bar"] = "2"; context2.ActionParameters["blap"] = value2; context2.ActionParameters["xyz"] = "abc"; // Act string result1 = attr.GetChildActionUniqueId(context1.Object); string result2 = attr.GetChildActionUniqueId(context2.Object); // Assert Assert.NotEqual(result1, result2); }
public void GetChildActionUniqueId_VariesByCustom() { // Arrange var attr = new OutputCacheAttribute { VaryByCustom = "foo" }; var application1 = new Mock <HttpApplication>(); application1 .Setup(a => a.GetVaryByCustomString(It.IsAny <HttpContext>(), "foo")) .Returns("1"); var context1 = new MockActionExecutingContext(); context1.SetupGet(c => c.HttpContext.ApplicationInstance).Returns(application1.Object); var application2 = new Mock <HttpApplication>(); application2 .Setup(a => a.GetVaryByCustomString(It.IsAny <HttpContext>(), "foo")) .Returns("2"); var context2 = new MockActionExecutingContext(); context2.SetupGet(c => c.HttpContext.ApplicationInstance).Returns(application2.Object); // Act string result1 = attr.GetChildActionUniqueId(context1.Object); string result2 = attr.GetChildActionUniqueId(context2.Object); // Assert Assert.Equal(@"VjXrM/nTu6zOLCi+teZcx7qDQRk/Q+G5ZirKHhH7MOA=", result1); Assert.Equal(@"Wi7TLgf052Ao0ZJX890MgynId6jByOf+xZ1G+5RHJUU=", result2); }
public void GetChildActionUniqueId_VariesByActionParameters_OnlyVariesByTheGivenParameters_MultipleSpecified_WithDifferentValues( string varyByParam, string value1, string value2) { // Arrange OutputCacheAttribute attr = new OutputCacheAttribute { VaryByParam = varyByParam }; MockActionExecutingContext context1 = new MockActionExecutingContext(); context1.ActionParameters["foo"] = value1; context1.ActionParameters["bar"] = "2"; context1.ActionParameters["blap"] = "3"; context1.ActionParameters["xyz"] = "abc"; MockActionExecutingContext context2 = new MockActionExecutingContext(); context2.ActionParameters["foo"] = value2; context2.ActionParameters["bar"] = "2"; context2.ActionParameters["blap"] = "3"; context2.ActionParameters["xyz"] = "abc"; // Act string result1 = attr.GetChildActionUniqueId(context1.Object); string result2 = attr.GetChildActionUniqueId(context2.Object); // Assert Assert.Equal("WBXQR5lxerJG33HR3XQ9sJsXuKu6eVPgmMqeWMu8t2s=", result1); Assert.Equal("CLMC7fAU4959ECaI79HRFglt7SnNRANMJeYderjF4m8=", result2); }
public static void BuildUniqueIdFromActionParameters_UsesAllActionParametersIfStar() { // Arrange OutputCacheAttribute attribute = new OutputCacheAttribute { VaryByParam = "*" }; StringBuilder builder1 = new StringBuilder(); MockActionExecutingContext context1 = new MockActionExecutingContext(); context1.ActionParameters["test1"] = "test1-value"; context1.ActionParameters["test2"] = 3; context1.ActionParameters["test3"] = null; string expected = "[5]TEST1[11]test1-value[5]TEST2[1]3[5]TEST3[-1]"; // Act - 1 attribute.BuildUniqueIdFromActionParameters(builder1, context1.Object); // Assert - 1 Assert.Equal(expected, builder1.ToString()); // Arrange - 2 // Verify that the keys are stable sorted when "*" is used. StringBuilder builder2 = new StringBuilder(); MockActionExecutingContext context2 = new MockActionExecutingContext(); context2.ActionParameters["test3"] = null; context2.ActionParameters["test2"] = 3; context2.ActionParameters["test1"] = "test1-value"; // Act - 2 attribute.BuildUniqueIdFromActionParameters(builder2, context2.Object); // Assert - 2 Assert.Equal(expected, builder2.ToString()); }
public static void BuildUniqueIdFromActionParameters_DoesNotCacheTokenizedStringsWhenStar() { // Arrange OutputCacheAttribute attribute = new OutputCacheAttribute { VaryByParam = "*" }; StringBuilder builder1 = new StringBuilder(); MockActionExecutingContext context1 = new MockActionExecutingContext(); context1.ActionParameters["test1"] = "test1-value"; context1.ActionParameters["test2"] = "Test2-Value"; context1.ActionParameters["test3"] = null; string expected1 = "[5]TEST1[11]test1-value[5]TEST2[11]Test2-Value[5]TEST3[-1]"; // Act - 1 attribute.BuildUniqueIdFromActionParameters(builder1, context1.Object); // Assert - 1 Assert.Equal(expected1, builder1.ToString()); // Arrange - 2 // Verify that the keys are stable sorted when "*" is used. StringBuilder builder2 = new StringBuilder(); MockActionExecutingContext context2 = new MockActionExecutingContext(); context2.ActionParameters["Foo"] = null; context2.ActionParameters["bar"] = "bar-value"; string expected2 = "[3]BAR[9]bar-value[3]FOO[-1]"; // Act - 2 attribute.BuildUniqueIdFromActionParameters(builder2, context2.Object); // Assert - 2 Assert.Equal(expected2, builder2.ToString()); }
public static void BuildUniqueIdFromActionParameters_LooksUpActionParametersInCaseInsensitiveManner( string varyByParam) { // Arrange MockActionExecutingContext context = new MockActionExecutingContext(); Dictionary <string, object> dictionary = new Dictionary <string, object>(StringComparer.Ordinal) { { "foo", "foo-value" }, { "Bar", "bar-value" } }; context.ActionParameters = dictionary; string expected = "[3]FOO[9]foo-value[3]BAR[9]bar-value"; StringBuilder builder = new StringBuilder(); OutputCacheAttribute attribute = new OutputCacheAttribute { VaryByParam = varyByParam }; // Act attribute.BuildUniqueIdFromActionParameters(builder, context.Object); // Assert Assert.Equal(expected, builder.ToString()); }
public void GetChildActionUniqueId_ReturnsDifferentValuesIfVaryByParamValueIsModified(string varyByParam, string expected) { // Arrange MockActionExecutingContext context = new MockActionExecutingContext(); context.ActionParameters["foo"] = "1"; context.ActionParameters["bar"] = "2"; OutputCacheAttribute attr = new OutputCacheAttribute { VaryByParam = "foo" }; // Act - 1 string result1 = attr.GetChildActionUniqueId(context.Object); // Assert - 1 Assert.Equal("tXBiB5qdEzfISoXUUqXAzPcd7y/9Ik6eFqy8w9i3aDw=", result1); // Act - 2 attr.VaryByParam = varyByParam; string result2 = attr.GetChildActionUniqueId(context.Object); // Assert - 2 Assert.Equal(expected, result2); }
public void GetChildActionUniqueId_VariesByActionParameters_OnlyVariesByTheGivenParameters_Wildcard_Different() { // Arrange OutputCacheAttribute attr = new OutputCacheAttribute { VaryByParam = "*" }; MockActionExecutingContext context1 = new MockActionExecutingContext(); context1.ActionParameters["foo"] = "1"; context1.ActionParameters["bar"] = "2"; context1.ActionParameters["blap"] = "3"; context1.ActionParameters["xyz"] = "abc"; MockActionExecutingContext context2 = new MockActionExecutingContext(); context2.ActionParameters["foo"] = "1"; context2.ActionParameters["bar"] = "4"; context2.ActionParameters["blap"] = "3"; context2.ActionParameters["xyz"] = "abc"; // Act string result1 = attr.GetChildActionUniqueId(context1.Object); string result2 = attr.GetChildActionUniqueId(context2.Object); // Assert Assert.NotEqual(result1, result2); }
public void GetChildActionUniqueId_VariesByActionParameters_MatchesActionParametersInCaseInsensitiveManner() { // Arrange OutputCacheAttribute attr = new OutputCacheAttribute { VaryByParam = "foo ; bar ; blap" }; MockActionExecutingContext context1 = new MockActionExecutingContext(); context1.ActionParameters["foo"] = "1"; context1.ActionParameters["BAR"] = "2"; context1.ActionParameters["blap"] = "3"; context1.ActionParameters["xyz"] = "abc"; MockActionExecutingContext context2 = new MockActionExecutingContext(); context2.ActionParameters["foo"] = "1"; context2.ActionParameters["bar"] = "2"; context2.ActionParameters["BLAP"] = "3"; context2.ActionParameters["xyz"] = "abc"; // Act string result1 = attr.GetChildActionUniqueId(context1.Object); string result2 = attr.GetChildActionUniqueId(context2.Object); // Assert Assert.Equal(result1, result2); }
public void GetChildActionUniqueId_VariesByActionParameters_OnlyVariesByGivenParameters(string varbyParam) { // Arrange string expected = "z2Fr6HAipKCkLdVkHMdHgeDBJyYutdqqTW07BMO31fQ="; OutputCacheAttribute attr = new OutputCacheAttribute { VaryByParam = varbyParam }; MockActionExecutingContext context1 = new MockActionExecutingContext(); context1.ActionParameters["foo"] = "1"; context1.ActionParameters["bar"] = "2"; context1.ActionParameters["blap"] = "3"; context1.ActionParameters["xyz"] = Guid.NewGuid().ToString(); context1.ActionParameters["some-key"] = Guid.NewGuid().ToString(); MockActionExecutingContext context2 = new MockActionExecutingContext(); context2.ActionParameters["foo"] = "1"; context2.ActionParameters["bar"] = "2"; context2.ActionParameters["blap"] = "3"; context2.ActionParameters["xyz"] = Guid.NewGuid().ToString(); context2.ActionParameters["different-key"] = Guid.NewGuid().ToString(); // Act string result1 = attr.GetChildActionUniqueId(context1.Object); string result2 = attr.GetChildActionUniqueId(context2.Object); // Assert Assert.Equal(expected, result1); Assert.Equal(expected, result2); }
public void TestMissingController() { var context = new MockActionExecutingContext(new object()); var filter = new UrlHelperProviderAttribute(); Assert.Throws <FilterRequiresControllerException>( () => filter.OnActionExecuting(context)); }
public void GetChildActionUniqueId_ReturnsRepeatableValueForIdenticalContext() { // Arrange var attr = new OutputCacheAttribute(); var context = new MockActionExecutingContext(); // Act string result1 = attr.GetChildActionUniqueId(context.Object); string result2 = attr.GetChildActionUniqueId(context.Object); // Assert Assert.Equal(result1, result2); }
public static void BuildUniqueIdFromActionParameters_NoOpsIfVaryByParamIsNone(string varyByParam) { // Arrange StringBuilder builder = new StringBuilder(); ActionExecutingContext context = new MockActionExecutingContext().Object; OutputCacheAttribute attribute = new OutputCacheAttribute { VaryByParam = varyByParam }; // Act attribute.BuildUniqueIdFromActionParameters(builder, context); // Assert Assert.Empty(builder.ToString()); }
public void TestSettingContext() { var serviceCollection = new ServiceCollection(); serviceCollection.AddFluentRestBuilder(); var scope = serviceCollection.BuildServiceProvider() .CreateScope(); var controller = new MockController(scope.ServiceProvider); var context = new MockActionExecutingContext(controller); var filter = new UrlHelperProviderAttribute(); filter.OnActionExecuting(context); var storage = scope.ServiceProvider.GetService <IScopedStorage <IUrlHelper> >(); Assert.Same(controller.Url, storage.Value); }
public void TestSettingContext() { var serviceProvider = new ServiceCollection() .AddFluentRestBuilder() .Services .BuildServiceProvider() .CreateScope() .ServiceProvider; var controller = new MockController(serviceProvider); var context = new MockActionExecutingContext(controller); var filter = new HttpContextProviderAttribute(); filter.OnActionExecuting(context); var storage = serviceProvider.GetService <IScopedStorage <HttpContext> >(); Assert.Same(controller.HttpContext, storage.Value); }
public void GetChildActionUniqueId_VariesByActionParameters_AllParametersByDefault() { // Arrange var attr = new OutputCacheAttribute(); var context1 = new MockActionExecutingContext(); context1.ActionParameters["foo"] = "1"; var context2 = new MockActionExecutingContext(); context2.ActionParameters["foo"] = "2"; // Act string result1 = attr.GetChildActionUniqueId(context1.Object); string result2 = attr.GetChildActionUniqueId(context2.Object); // Assert Assert.NotEqual(result1, result2); }
public void GetChildActionUniqueId_VariesByActionDescriptorsUniqueId() { // Arrange var attr = new OutputCacheAttribute(); var context1 = new MockActionExecutingContext(); context1.Setup(c => c.ActionDescriptor.UniqueId).Returns("1"); var context2 = new MockActionExecutingContext(); context2.Setup(c => c.ActionDescriptor.UniqueId).Returns("2"); // Act string result1 = attr.GetChildActionUniqueId(context1.Object); string result2 = attr.GetChildActionUniqueId(context2.Object); // Assert Assert.NotEqual(result1, result2); }
public void GetChildActionUniqueId_VariesByActionParameters_AllParametersByDefault() { // Arrange var attr = new OutputCacheAttribute(); var context1 = new MockActionExecutingContext(); context1.ActionParameters["foo"] = "1"; var context2 = new MockActionExecutingContext(); context2.ActionParameters["foo"] = "2"; // Act string result1 = attr.GetChildActionUniqueId(context1.Object); string result2 = attr.GetChildActionUniqueId(context2.Object); // Assert Assert.Equal("tXBiB5qdEzfISoXUUqXAzPcd7y/9Ik6eFqy8w9i3aDw=", result1); Assert.Equal("Bb+E/t8aWfczVF2UFVr+FUpuGYjR/SPhzt71q+oAlHk=", result2); }
public void GetChildActionUniqueId_VariesByActionParameters_OnlyVariesByTheGivenParameters() { // Arrange var attr = new OutputCacheAttribute { VaryByParam = "bar" }; var context1 = new MockActionExecutingContext(); context1.ActionParameters["foo"] = "1"; var context2 = new MockActionExecutingContext(); context2.ActionParameters["foo"] = "2"; // Act string result1 = attr.GetChildActionUniqueId(context1.Object); string result2 = attr.GetChildActionUniqueId(context2.Object); // Assert Assert.Equal(result1, result2); }
public void GetChildActionUniqueId_DoesNotVaryByActionParametersWhenVaryByParamIsNone() { // Arrange var attr = new OutputCacheAttribute { VaryByParam = "none" }; var context1 = new MockActionExecutingContext(); context1.ActionParameters["foo"] = "1"; var context2 = new MockActionExecutingContext(); context2.ActionParameters["foo"] = "2"; // Act string result1 = attr.GetChildActionUniqueId(context1.Object); string result2 = attr.GetChildActionUniqueId(context2.Object); // Assert Assert.Equal(result1, result2); }
public void GetChildActionUniqueId_VariesByCustom() { // Arrange var attr = new OutputCacheAttribute { VaryByCustom = "foo" }; var context1 = new MockActionExecutingContext(); context1.Setup(c => c.HttpContext.ApplicationInstance.GetVaryByCustomString(It.IsAny <HttpContext>(), "foo")).Returns("1"); var context2 = new MockActionExecutingContext(); context2.Setup(c => c.HttpContext.ApplicationInstance.GetVaryByCustomString(It.IsAny <HttpContext>(), "foo")).Returns("2"); // Act string result1 = attr.GetChildActionUniqueId(context1.Object); string result2 = attr.GetChildActionUniqueId(context2.Object); // Assert Assert.NotEqual(result1, result2); }
public void GetChildActionUniqueId_VariesByActionParameters_OnlyVariesByTheGivenParameters() { // Arrange OutputCacheAttribute attr = new OutputCacheAttribute { VaryByParam = "bar" }; MockActionExecutingContext context1 = new MockActionExecutingContext(); context1.ActionParameters["foo"] = "1"; MockActionExecutingContext context2 = new MockActionExecutingContext(); context2.ActionParameters["foo"] = "2"; // Act string result1 = attr.GetChildActionUniqueId(context1.Object); string result2 = attr.GetChildActionUniqueId(context2.Object); // Assert Assert.Equal(result1, result2); Assert.Equal("sx9+LHPOjtSGct8z6Cn4ml+2yKODPojZtrLhrhJofKM=", result1); }
public void GetChildActionUniqueId_VariesByActionParameters_OnlyVariesByTheGivenParameters_SingleSpecified_Same() { // Arrange OutputCacheAttribute attr = new OutputCacheAttribute { VaryByParam = "foo" }; MockActionExecutingContext context1 = new MockActionExecutingContext(); context1.ActionParameters["foo"] = "1"; MockActionExecutingContext context2 = new MockActionExecutingContext(); context2.ActionParameters["foo"] = "1"; // Act string result1 = attr.GetChildActionUniqueId(context1.Object); string result2 = attr.GetChildActionUniqueId(context2.Object); // Assert Assert.Equal("tXBiB5qdEzfISoXUUqXAzPcd7y/9Ik6eFqy8w9i3aDw=", result1); Assert.Equal("tXBiB5qdEzfISoXUUqXAzPcd7y/9Ik6eFqy8w9i3aDw=", result2); }