Skip to content
This repository was archived by the owner on Nov 20, 2018. It is now read-only.

Commit 47216af

Browse files
committed
Add feature cache tests
1 parent 1c04873 commit 47216af

12 files changed

+223
-16
lines changed

src/Microsoft.AspNet.Http/Authentication/DefaultAuthenticationManager.cs

+7-1
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,11 @@ void IFeatureCache.CheckFeaturesRevision()
3232
}
3333
}
3434

35+
void IFeatureCache.SetFeaturesRevision()
36+
{
37+
_cachedFeaturesRevision = _features.Revision;
38+
}
39+
3540
public void UpdateFeatures(IFeatureCollection features)
3641
{
3742
_features = features;
@@ -41,7 +46,8 @@ public void UpdateFeatures(IFeatureCollection features)
4146
private void ResetFeatures()
4247
{
4348
_authentication = null;
44-
_cachedFeaturesRevision = _features.Revision;
49+
50+
((IFeatureCache)this).SetFeaturesRevision();
4551
}
4652

4753
private IHttpAuthenticationFeature HttpAuthenticationFeature

src/Microsoft.AspNet.Http/DefaultConnectionInfo.cs

+7-1
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,11 @@ void IFeatureCache.CheckFeaturesRevision()
3131
}
3232
}
3333

34+
void IFeatureCache.SetFeaturesRevision()
35+
{
36+
_cachedFeaturesRevision = _features.Revision;
37+
}
38+
3439
public void UpdateFeatures(IFeatureCollection features)
3540
{
3641
_features = features;
@@ -41,7 +46,8 @@ private void ResetFeatures()
4146
{
4247
_connection = null;
4348
_tlsConnection = null;
44-
_cachedFeaturesRevision = _features.Revision;
49+
50+
((IFeatureCache)this).SetFeaturesRevision();
4551
}
4652

4753
private IHttpConnectionFeature HttpConnectionFeature

src/Microsoft.AspNet.Http/DefaultHttpContext.cs

+7-1
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,11 @@ void IFeatureCache.CheckFeaturesRevision()
5454
}
5555
}
5656

57+
void IFeatureCache.SetFeaturesRevision()
58+
{
59+
_cachedFeaturesRevision = _features.Revision;
60+
}
61+
5762
public void UpdateFeatures(IFeatureCollection features)
5863
{
5964
_features = features;
@@ -74,7 +79,8 @@ private void ResetFeatures()
7479
_authentication = null;
7580
_lifetime = null;
7681
_session = null;
77-
_cachedFeaturesRevision = _features.Revision;
82+
83+
((IFeatureCache)this).SetFeaturesRevision();
7884
}
7985

8086
IItemsFeature ItemsFeature

src/Microsoft.AspNet.Http/DefaultHttpRequest.cs

+7-1
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,11 @@ void IFeatureCache.CheckFeaturesRevision()
3636
}
3737
}
3838

39+
void IFeatureCache.SetFeaturesRevision()
40+
{
41+
_cachedFeaturesRevision = _features.Revision;
42+
}
43+
3944
public void UpdateFeatures(IFeatureCollection features)
4045
{
4146
_features = features;
@@ -48,7 +53,8 @@ private void ResetFeatures()
4853
_query = null;
4954
_form = null;
5055
_cookies = null;
51-
_cachedFeaturesRevision = _features.Revision;
56+
57+
((IFeatureCache)this).SetFeaturesRevision();
5258
}
5359

5460
private IHttpRequestFeature HttpRequestFeature

src/Microsoft.AspNet.Http/DefaultHttpResponse.cs

+7-1
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,11 @@ void IFeatureCache.CheckFeaturesRevision()
3333
}
3434
}
3535

36+
void IFeatureCache.SetFeaturesRevision()
37+
{
38+
_cachedFeaturesRevision = _features.Revision;
39+
}
40+
3641
public void UpdateFeatures(IFeatureCollection features)
3742
{
3843
_features = features;
@@ -43,7 +48,8 @@ private void ResetFeatures()
4348
{
4449
_response = null;
4550
_cookies = null;
46-
_cachedFeaturesRevision = _features.Revision;
51+
52+
((IFeatureCache)this).SetFeaturesRevision();
4753
}
4854

4955
private IHttpResponseFeature HttpResponseFeature

src/Microsoft.AspNet.Http/DefaultWebSocketManager.cs

+7-1
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,11 @@ void IFeatureCache.CheckFeaturesRevision()
3131
}
3232
}
3333

34+
void IFeatureCache.SetFeaturesRevision()
35+
{
36+
_cachedFeaturesRevision = _features.Revision;
37+
}
38+
3439
public void UpdateFeatures(IFeatureCollection features)
3540
{
3641
_features = features;
@@ -41,7 +46,8 @@ private void ResetFeatures()
4146
{
4247
_request = null;
4348
_webSockets = null;
44-
_cachedFeaturesRevision = _features.Revision;
49+
50+
((IFeatureCache)this).SetFeaturesRevision();
4551
}
4652

4753
private IHttpRequestFeature HttpRequestFeature

src/Microsoft.AspNet.Http/Features/FeatureHelpers.cs

+10-6
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ public static T GetAndCache<T>(
2020
{
2121
obj = features.Get<T>();
2222
cachedObject = obj;
23+
cache.SetFeaturesRevision();
2324
}
2425
return obj;
2526
}
@@ -56,9 +57,10 @@ public static T GetOrCreateAndCache<T>(
5657
if (obj == null)
5758
{
5859
obj = factory();
59-
cachedObject = obj;
60-
features.Set(obj);
6160
}
61+
cachedObject = obj;
62+
features.Set(obj);
63+
cache.SetFeaturesRevision();
6264
}
6365
return obj;
6466
}
@@ -79,9 +81,10 @@ public static T GetOrCreateAndCache<T>(
7981
if (obj == null)
8082
{
8183
obj = factory(features);
82-
cachedObject = obj;
83-
features.Set(obj);
8484
}
85+
cachedObject = obj;
86+
features.Set(obj);
87+
cache.SetFeaturesRevision();
8588
}
8689
return obj;
8790
}
@@ -103,9 +106,10 @@ public static T GetOrCreateAndCache<T>(
103106
if (obj == null)
104107
{
105108
obj = factory(request);
106-
cachedObject = obj;
107-
features.Set(obj);
108109
}
110+
cachedObject = obj;
111+
features.Set(obj);
112+
cache.SetFeaturesRevision();
109113
}
110114
return obj;
111115
}

src/Microsoft.AspNet.Http/Features/IFeatureCache.cs

+2-1
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,9 @@
33

44
namespace Microsoft.AspNet.Http.Features
55
{
6-
public interface IFeatureCache
6+
internal interface IFeatureCache
77
{
88
void CheckFeaturesRevision();
9+
void SetFeaturesRevision();
910
}
1011
}

src/Microsoft.AspNet.Http/Features/QueryFeature.cs

+6-1
Original file line numberDiff line numberDiff line change
@@ -42,10 +42,15 @@ void IFeatureCache.CheckFeaturesRevision()
4242
if (_cachedFeaturesRevision != _features.Revision)
4343
{
4444
_request = null;
45-
_cachedFeaturesRevision = _features.Revision;
45+
((IFeatureCache)this).SetFeaturesRevision();
4646
}
4747
}
4848

49+
void IFeatureCache.SetFeaturesRevision()
50+
{
51+
_cachedFeaturesRevision = _features.Revision;
52+
}
53+
4954
private IHttpRequestFeature HttpRequestFeature
5055
{
5156
get { return FeatureHelpers.GetAndCache(this, _features, ref _request); }

src/Microsoft.AspNet.Http/Features/RequestCookiesFeature.cs

+6-1
Original file line numberDiff line numberDiff line change
@@ -44,10 +44,15 @@ void IFeatureCache.CheckFeaturesRevision()
4444
if (_cachedFeaturesRevision != _features.Revision)
4545
{
4646
_request = null;
47-
_cachedFeaturesRevision = _features.Revision;
47+
((IFeatureCache)this).SetFeaturesRevision();
4848
}
4949
}
5050

51+
void IFeatureCache.SetFeaturesRevision()
52+
{
53+
_cachedFeaturesRevision = _features.Revision;
54+
}
55+
5156
private IHttpRequestFeature HttpRequestFeature
5257
{
5358
get { return FeatureHelpers.GetAndCache(this, _features, ref _request); }

src/Microsoft.AspNet.Http/Features/ResponseCookiesFeature.cs

+6-1
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,15 @@ void IFeatureCache.CheckFeaturesRevision()
2323
if (_cachedFeaturesRevision != _features.Revision)
2424
{
2525
_response = null;
26-
_cachedFeaturesRevision = _features.Revision;
26+
((IFeatureCache)this).SetFeaturesRevision();
2727
}
2828
}
2929

30+
void IFeatureCache.SetFeaturesRevision()
31+
{
32+
_cachedFeaturesRevision = _features.Revision;
33+
}
34+
3035
private IHttpResponseFeature HttpResponseFeature
3136
{
3237
get { return FeatureHelpers.GetAndCache(this, _features, ref _response); }

0 commit comments

Comments
 (0)