113 references to CacheVaryByRules
Microsoft.AspNetCore.OutputCaching (25)
OutputCacheContext.cs (1)
51
/// Gets the <see cref="
CacheVaryByRules
"/> instance.
OutputCacheKeyProvider.cs (10)
76
var cacheKeyPrefix = context.
CacheVaryByRules
.CacheKeyPrefix;
86
.Append(context.
CacheVaryByRules
.CacheKeyPrefix)
110
if (context.
CacheVaryByRules
.VaryByHost)
138
var varyByRules = context.
CacheVaryByRules
;
142
throw new InvalidOperationException($"{nameof(OutputCacheContext.
CacheVaryByRules
)} must not be null on the {nameof(OutputCacheContext)}");
145
var varyHeaderNames = context.
CacheVaryByRules
.HeaderNames;
146
var varyRouteValueNames = context.
CacheVaryByRules
.RouteValueNames;
147
var varyQueryKeys = context.
CacheVaryByRules
.QueryKeys;
148
var varyByValues = context.
CacheVaryByRules
.HasVaryByValues ? context.
CacheVaryByRules
.VaryByValues : null;
Policies\DefaultPolicy.cs (1)
30
context.
CacheVaryByRules
.QueryKeys = "*";
Policies\SetCacheKeyPrefixPolicy.cs (1)
26
return _varyByAsync.Invoke(context.HttpContext, context.
CacheVaryByRules
, cancellationToken);
Policies\VaryByHeaderPolicy.cs (3)
44
context.
CacheVaryByRules
.HeaderNames = _headerNames;
48
context.
CacheVaryByRules
.HeaderNames = StringValues.Concat(context.
CacheVaryByRules
.HeaderNames, _headerNames);
Policies\VaryByHostPolicy.cs (1)
27
context.
CacheVaryByRules
.VaryByHost = _varyByHost;
Policies\VaryByQueryPolicy.cs (6)
45
context.
CacheVaryByRules
.QueryKeys = _queryKeys;
50
if (context.
CacheVaryByRules
.QueryKeys.Count == 1 && string.Equals(context.
CacheVaryByRules
.QueryKeys[0], "*", StringComparison.Ordinal))
52
context.
CacheVaryByRules
.QueryKeys = _queryKeys;
56
context.
CacheVaryByRules
.QueryKeys = StringValues.Concat(context.
CacheVaryByRules
.QueryKeys, _queryKeys);
Policies\VaryByRouteValuePolicy.cs (1)
41
context.
CacheVaryByRules
.RouteValueNames = _routeValueNames;
Policies\VaryByValuePolicy.cs (1)
30
return _varyByAsync.Invoke(context.HttpContext, context.
CacheVaryByRules
, cancellationToken);
Microsoft.AspNetCore.OutputCaching.Tests (88)
OutputCacheAttributeTests.cs (9)
85
Assert.Contains("HeaderA", (IEnumerable<string>)context.
CacheVaryByRules
.HeaderNames);
86
Assert.Contains("HeaderC", (IEnumerable<string>)context.
CacheVaryByRules
.HeaderNames);
87
Assert.DoesNotContain("HeaderB", (IEnumerable<string>)context.
CacheVaryByRules
.HeaderNames);
100
Assert.Contains("QueryA", (IEnumerable<string>)context.
CacheVaryByRules
.QueryKeys);
101
Assert.Contains("QueryC", (IEnumerable<string>)context.
CacheVaryByRules
.QueryKeys);
102
Assert.DoesNotContain("QueryB", (IEnumerable<string>)context.
CacheVaryByRules
.QueryKeys);
119
Assert.Contains("RouteA", (IEnumerable<string>)context.
CacheVaryByRules
.RouteValueNames);
120
Assert.Contains("RouteC", (IEnumerable<string>)context.
CacheVaryByRules
.RouteValueNames);
121
Assert.DoesNotContain("RouteB", (IEnumerable<string>)context.
CacheVaryByRules
.RouteValueNames);
OutputCacheKeyProviderTests.cs (44)
35
context.
CacheVaryByRules
.VaryByHost = false;
81
Assert.NotNull(context.
CacheVaryByRules
);
89
context.
CacheVaryByRules
.CacheKeyPrefix = Guid.NewGuid().ToString("n");
91
Assert.Equal($"{context.
CacheVaryByRules
.CacheKeyPrefix}{KeyDelimiter}{EmptyBaseKey}", cacheKeyProvider.CreateStorageKey(context));
101
context.
CacheVaryByRules
.RouteValueNames = new string[] { "RouteA", "RouteC" };
113
context.
CacheVaryByRules
.RouteValueNames = new string[] { "RouteA", "RouteC" };
133
context.
CacheVaryByRules
.VaryByValues["b"] = "ValueB";
134
context.
CacheVaryByRules
.VaryByValues["a"] = "ValueA";
147
context.
CacheVaryByRules
.HeaderNames = new string[] { "HeaderA", "HeaderC" };
159
context.
CacheVaryByRules
.HeaderNames = new string[] { "HEADERA" };
172
context.
CacheVaryByRules
.HeaderNames = new string[] { "HeaderA", "HeaderC" };
184
context.
CacheVaryByRules
.CacheKeyPrefix = Guid.NewGuid().ToString("n");
185
context.
CacheVaryByRules
.QueryKeys = new string[] { "QueryA", "QueryC" };
187
Assert.Equal($"{context.
CacheVaryByRules
.CacheKeyPrefix}{KeyDelimiter}{EmptyBaseKey}{KeyDelimiter}Q{KeyDelimiter}QueryA=ValueA{KeyDelimiter}QueryC=",
197
context.
CacheVaryByRules
.CacheKeyPrefix = Guid.NewGuid().ToString("n");
198
context.
CacheVaryByRules
.QueryKeys = new string[] { "QueryA", "QueryC" };
200
Assert.Equal($"{context.
CacheVaryByRules
.CacheKeyPrefix}{KeyDelimiter}{EmptyBaseKey}{KeyDelimiter}Q{KeyDelimiter}QueryA=ValueA{KeyDelimiter}QueryC=",
210
context.
CacheVaryByRules
.CacheKeyPrefix = Guid.NewGuid().ToString("n");
211
context.
CacheVaryByRules
.QueryKeys = new string[] { "QUERYA" };
213
Assert.Equal($"{context.
CacheVaryByRules
.CacheKeyPrefix}{KeyDelimiter}{EmptyBaseKey}{KeyDelimiter}Q{KeyDelimiter}QUERYA=ValueA",
223
context.
CacheVaryByRules
.CacheKeyPrefix = Guid.NewGuid().ToString("n");
224
context.
CacheVaryByRules
.QueryKeys = new string[] { "*" };
228
Assert.Equal($"{context.
CacheVaryByRules
.CacheKeyPrefix}{KeyDelimiter}{EmptyBaseKey}{KeyDelimiter}Q{KeyDelimiter}QUERYA=ValueA{KeyDelimiter}QUERYB=ValueB",
238
context.
CacheVaryByRules
.CacheKeyPrefix = Guid.NewGuid().ToString("n");
239
context.
CacheVaryByRules
.QueryKeys = new string[] { "*" };
243
Assert.Equal($"{context.
CacheVaryByRules
.CacheKeyPrefix}{KeyDelimiter}{EmptyBaseKey}{KeyDelimiter}Q{KeyDelimiter}QUERYA=ValueA{KeySubDelimiter}ValueB",
253
context.
CacheVaryByRules
.CacheKeyPrefix = Guid.NewGuid().ToString("n");
254
context.
CacheVaryByRules
.QueryKeys = new string[] { "*" };
258
Assert.Equal($"{context.
CacheVaryByRules
.CacheKeyPrefix}{KeyDelimiter}{EmptyBaseKey}{KeyDelimiter}Q{KeyDelimiter}QUERYA=ValueA{KeySubDelimiter}ValueB",
272
context.
CacheVaryByRules
.CacheKeyPrefix = Guid.NewGuid().ToString("n");
273
context.
CacheVaryByRules
.HeaderNames = new string[] { "HeaderA", "HeaderC" };
274
context.
CacheVaryByRules
.QueryKeys = new string[] { "QueryA", "QueryC" };
275
context.
CacheVaryByRules
.RouteValueNames = new string[] { "RouteA", "RouteC" };
277
Assert.Equal($"{context.
CacheVaryByRules
.CacheKeyPrefix}{KeyDelimiter}{EmptyBaseKey}{KeyDelimiter}H{KeyDelimiter}HeaderA=ValueA{KeyDelimiter}HeaderC={KeyDelimiter}Q{KeyDelimiter}QueryA=ValueA{KeyDelimiter}QueryC={KeyDelimiter}R{KeyDelimiter}RouteA=ValueA{KeyDelimiter}RouteC=",
325
context.
CacheVaryByRules
.HeaderNames = new string[] { "HeaderA", "HeaderC" };
339
context.
CacheVaryByRules
.HeaderNames = new string[] { "HeaderA", "HeaderC" };
352
context.
CacheVaryByRules
.QueryKeys = new string[] { "QueryA", "QueryC" };
365
context.
CacheVaryByRules
.QueryKeys = new string[] { "*" };
378
context.
CacheVaryByRules
.QueryKeys = new string[] { "QueryA", "QueryC" };
392
context.
CacheVaryByRules
.RouteValueNames = new string[] { "RouteA", "RouteC" };
406
context.
CacheVaryByRules
.RouteValueNames = new string[] { "RouteA", "RouteC" };
420
context.
CacheVaryByRules
.CacheKeyPrefix = Guid.NewGuid().ToString("n");
421
context.
CacheVaryByRules
.RouteValueNames = new string[] { "ROUTEA" };
423
Assert.Equal($"{context.
CacheVaryByRules
.CacheKeyPrefix}{KeyDelimiter}{EmptyBaseKey}{KeyDelimiter}R{KeyDelimiter}ROUTEA=ValueA",
OutputCacheMiddlewareTests.cs (1)
524
context.
CacheVaryByRules
.QueryKeys = vary;
OutputCachePoliciesTests.cs (12)
29
Assert.True(context.
CacheVaryByRules
.VaryByHost);
51
Assert.Equal("*", context.
CacheVaryByRules
.QueryKeys);
74
Assert.False(context.
CacheVaryByRules
.VaryByHost);
191
Assert.Equal(0, context.
CacheVaryByRules
.HeaderNames.Count);
204
Assert.Equal(header, context.
CacheVaryByRules
.HeaderNames);
217
Assert.Equal(headers, context.
CacheVaryByRules
.HeaderNames.ToArray());
229
Assert.Equal(0, context.
CacheVaryByRules
.QueryKeys.Count);
242
Assert.Equal(query, context.
CacheVaryByRules
.QueryKeys);
255
Assert.Equal(queries, context.
CacheVaryByRules
.QueryKeys.ToArray());
268
Assert.Equal(queries, context.
CacheVaryByRules
.QueryKeys.ToArray());
281
Assert.Equal(value, context.
CacheVaryByRules
.CacheKeyPrefix);
295
Assert.Contains(new KeyValuePair<string, string>(key, value), context.
CacheVaryByRules
.VaryByValues);
OutputCachePolicyBuilderTests.cs (22)
100
Assert.False(context.
CacheVaryByRules
.VaryByHost);
115
Assert.Contains("HeaderA", (IEnumerable<string>)context.
CacheVaryByRules
.HeaderNames);
116
Assert.Contains("HeaderC", (IEnumerable<string>)context.
CacheVaryByRules
.HeaderNames);
117
Assert.DoesNotContain("HeaderB", (IEnumerable<string>)context.
CacheVaryByRules
.HeaderNames);
131
Assert.Contains("QueryA", (IEnumerable<string>)context.
CacheVaryByRules
.QueryKeys);
132
Assert.Contains("QueryC", (IEnumerable<string>)context.
CacheVaryByRules
.QueryKeys);
133
Assert.DoesNotContain("QueryB", (IEnumerable<string>)context.
CacheVaryByRules
.QueryKeys);
151
Assert.Contains("RouteA", (IEnumerable<string>)context.
CacheVaryByRules
.RouteValueNames);
152
Assert.Contains("RouteC", (IEnumerable<string>)context.
CacheVaryByRules
.RouteValueNames);
153
Assert.DoesNotContain("RouteB", (IEnumerable<string>)context.
CacheVaryByRules
.RouteValueNames);
171
Assert.Contains("RouteA", (IEnumerable<string>)context.
CacheVaryByRules
.RouteValueNames);
172
Assert.Contains("RouteC", (IEnumerable<string>)context.
CacheVaryByRules
.RouteValueNames);
173
Assert.DoesNotContain("RouteB", (IEnumerable<string>)context.
CacheVaryByRules
.RouteValueNames);
191
Assert.Contains("RouteA", (IEnumerable<string>)context.
CacheVaryByRules
.RouteValueNames);
192
Assert.Contains("RouteC", (IEnumerable<string>)context.
CacheVaryByRules
.RouteValueNames);
193
Assert.DoesNotContain("RouteB", (IEnumerable<string>)context.
CacheVaryByRules
.RouteValueNames);
211
Assert.Equal("tenant1", context1.
CacheVaryByRules
.CacheKeyPrefix);
212
Assert.Equal("tenant2", context2.
CacheVaryByRules
.CacheKeyPrefix);
213
Assert.Equal("tenant3", context3.
CacheVaryByRules
.CacheKeyPrefix);
231
Assert.Equal("circle", context.
CacheVaryByRules
.VaryByValues["shape"]);
232
Assert.Equal("blue", context.
CacheVaryByRules
.VaryByValues["color"]);
233
Assert.Equal("1m", context.
CacheVaryByRules
.VaryByValues["size"]);