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

Commit

Permalink
Add feature cache tests
Browse files Browse the repository at this point in the history
  • Loading branch information
benaadams committed Dec 11, 2015
1 parent 1c04873 commit 47216af
Show file tree
Hide file tree
Showing 12 changed files with 223 additions and 16 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,11 @@ void IFeatureCache.CheckFeaturesRevision()
}
}

void IFeatureCache.SetFeaturesRevision()
{
_cachedFeaturesRevision = _features.Revision;
}

public void UpdateFeatures(IFeatureCollection features)
{
_features = features;
Expand All @@ -41,7 +46,8 @@ public void UpdateFeatures(IFeatureCollection features)
private void ResetFeatures()
{
_authentication = null;
_cachedFeaturesRevision = _features.Revision;

((IFeatureCache)this).SetFeaturesRevision();
}

private IHttpAuthenticationFeature HttpAuthenticationFeature
Expand Down
8 changes: 7 additions & 1 deletion src/Microsoft.AspNet.Http/DefaultConnectionInfo.cs
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,11 @@ void IFeatureCache.CheckFeaturesRevision()
}
}

void IFeatureCache.SetFeaturesRevision()
{
_cachedFeaturesRevision = _features.Revision;
}

public void UpdateFeatures(IFeatureCollection features)
{
_features = features;
Expand All @@ -41,7 +46,8 @@ private void ResetFeatures()
{
_connection = null;
_tlsConnection = null;
_cachedFeaturesRevision = _features.Revision;

((IFeatureCache)this).SetFeaturesRevision();
}

private IHttpConnectionFeature HttpConnectionFeature
Expand Down
8 changes: 7 additions & 1 deletion src/Microsoft.AspNet.Http/DefaultHttpContext.cs
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,11 @@ void IFeatureCache.CheckFeaturesRevision()
}
}

void IFeatureCache.SetFeaturesRevision()
{
_cachedFeaturesRevision = _features.Revision;
}

public void UpdateFeatures(IFeatureCollection features)
{
_features = features;
Expand All @@ -74,7 +79,8 @@ private void ResetFeatures()
_authentication = null;
_lifetime = null;
_session = null;
_cachedFeaturesRevision = _features.Revision;

((IFeatureCache)this).SetFeaturesRevision();
}

IItemsFeature ItemsFeature
Expand Down
8 changes: 7 additions & 1 deletion src/Microsoft.AspNet.Http/DefaultHttpRequest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,11 @@ void IFeatureCache.CheckFeaturesRevision()
}
}

void IFeatureCache.SetFeaturesRevision()
{
_cachedFeaturesRevision = _features.Revision;
}

public void UpdateFeatures(IFeatureCollection features)
{
_features = features;
Expand All @@ -48,7 +53,8 @@ private void ResetFeatures()
_query = null;
_form = null;
_cookies = null;
_cachedFeaturesRevision = _features.Revision;

((IFeatureCache)this).SetFeaturesRevision();
}

private IHttpRequestFeature HttpRequestFeature
Expand Down
8 changes: 7 additions & 1 deletion src/Microsoft.AspNet.Http/DefaultHttpResponse.cs
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,11 @@ void IFeatureCache.CheckFeaturesRevision()
}
}

void IFeatureCache.SetFeaturesRevision()
{
_cachedFeaturesRevision = _features.Revision;
}

public void UpdateFeatures(IFeatureCollection features)
{
_features = features;
Expand All @@ -43,7 +48,8 @@ private void ResetFeatures()
{
_response = null;
_cookies = null;
_cachedFeaturesRevision = _features.Revision;

((IFeatureCache)this).SetFeaturesRevision();
}

private IHttpResponseFeature HttpResponseFeature
Expand Down
8 changes: 7 additions & 1 deletion src/Microsoft.AspNet.Http/DefaultWebSocketManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,11 @@ void IFeatureCache.CheckFeaturesRevision()
}
}

void IFeatureCache.SetFeaturesRevision()
{
_cachedFeaturesRevision = _features.Revision;
}

public void UpdateFeatures(IFeatureCollection features)
{
_features = features;
Expand All @@ -41,7 +46,8 @@ private void ResetFeatures()
{
_request = null;
_webSockets = null;
_cachedFeaturesRevision = _features.Revision;

((IFeatureCache)this).SetFeaturesRevision();
}

private IHttpRequestFeature HttpRequestFeature
Expand Down
16 changes: 10 additions & 6 deletions src/Microsoft.AspNet.Http/Features/FeatureHelpers.cs
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ public static T GetAndCache<T>(
{
obj = features.Get<T>();
cachedObject = obj;
cache.SetFeaturesRevision();
}
return obj;
}
Expand Down Expand Up @@ -56,9 +57,10 @@ public static T GetOrCreateAndCache<T>(
if (obj == null)
{
obj = factory();
cachedObject = obj;
features.Set(obj);
}
cachedObject = obj;
features.Set(obj);
cache.SetFeaturesRevision();
}
return obj;
}
Expand All @@ -79,9 +81,10 @@ public static T GetOrCreateAndCache<T>(
if (obj == null)
{
obj = factory(features);
cachedObject = obj;
features.Set(obj);
}
cachedObject = obj;
features.Set(obj);
cache.SetFeaturesRevision();
}
return obj;
}
Expand All @@ -103,9 +106,10 @@ public static T GetOrCreateAndCache<T>(
if (obj == null)
{
obj = factory(request);
cachedObject = obj;
features.Set(obj);
}
cachedObject = obj;
features.Set(obj);
cache.SetFeaturesRevision();
}
return obj;
}
Expand Down
3 changes: 2 additions & 1 deletion src/Microsoft.AspNet.Http/Features/IFeatureCache.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,9 @@

namespace Microsoft.AspNet.Http.Features
{
public interface IFeatureCache
internal interface IFeatureCache
{
void CheckFeaturesRevision();
void SetFeaturesRevision();
}
}
7 changes: 6 additions & 1 deletion src/Microsoft.AspNet.Http/Features/QueryFeature.cs
Original file line number Diff line number Diff line change
Expand Up @@ -42,10 +42,15 @@ void IFeatureCache.CheckFeaturesRevision()
if (_cachedFeaturesRevision != _features.Revision)
{
_request = null;
_cachedFeaturesRevision = _features.Revision;
((IFeatureCache)this).SetFeaturesRevision();
}
}

void IFeatureCache.SetFeaturesRevision()
{
_cachedFeaturesRevision = _features.Revision;
}

private IHttpRequestFeature HttpRequestFeature
{
get { return FeatureHelpers.GetAndCache(this, _features, ref _request); }
Expand Down
7 changes: 6 additions & 1 deletion src/Microsoft.AspNet.Http/Features/RequestCookiesFeature.cs
Original file line number Diff line number Diff line change
Expand Up @@ -44,10 +44,15 @@ void IFeatureCache.CheckFeaturesRevision()
if (_cachedFeaturesRevision != _features.Revision)
{
_request = null;
_cachedFeaturesRevision = _features.Revision;
((IFeatureCache)this).SetFeaturesRevision();
}
}

void IFeatureCache.SetFeaturesRevision()
{
_cachedFeaturesRevision = _features.Revision;
}

private IHttpRequestFeature HttpRequestFeature
{
get { return FeatureHelpers.GetAndCache(this, _features, ref _request); }
Expand Down
7 changes: 6 additions & 1 deletion src/Microsoft.AspNet.Http/Features/ResponseCookiesFeature.cs
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,15 @@ void IFeatureCache.CheckFeaturesRevision()
if (_cachedFeaturesRevision != _features.Revision)
{
_response = null;
_cachedFeaturesRevision = _features.Revision;
((IFeatureCache)this).SetFeaturesRevision();
}
}

void IFeatureCache.SetFeaturesRevision()
{
_cachedFeaturesRevision = _features.Revision;
}

private IHttpResponseFeature HttpResponseFeature
{
get { return FeatureHelpers.GetAndCache(this, _features, ref _response); }
Expand Down
Loading

0 comments on commit 47216af

Please sign in to comment.