public void GetCorsPolicyProvider_CallsInner() { bool innerIsCalled = false; Mock <ITraceWriter> traceWriterMock = new Mock <ITraceWriter>(); Mock <ICorsPolicyProviderFactory> policyProviderFactoryMock = new Mock <ICorsPolicyProviderFactory>(); policyProviderFactoryMock .Setup(f => f.GetCorsPolicyProvider(It.IsAny <HttpRequestMessage>())) .Returns( () => { innerIsCalled = true; return(new Mock <ICorsPolicyProvider>().Object); } ); CorsPolicyProviderFactoryTracer tracer = new CorsPolicyProviderFactoryTracer( policyProviderFactoryMock.Object, traceWriterMock.Object ); tracer.GetCorsPolicyProvider(new HttpRequestMessage()); Assert.True(innerIsCalled); }
public void GetCorsPolicyProvider_EmitTraces() { TraceRecord beginTrace = null; TraceRecord endTrace = null; Mock <ITraceWriter> traceWriterMock = new Mock <ITraceWriter>(); traceWriterMock .Setup(t => t.Trace(It.IsAny <HttpRequestMessage>(), It.IsAny <string>(), It.IsAny <TraceLevel>(), It.IsAny <Action <TraceRecord> >())) .Callback <HttpRequestMessage, string, TraceLevel, Action <TraceRecord> >((request, category, level, traceAction) => { TraceRecord traceRecord = new TraceRecord(request, category, level); traceAction(traceRecord); if (traceRecord.Kind == TraceKind.Begin) { beginTrace = traceRecord; } else if (traceRecord.Kind == TraceKind.End) { endTrace = traceRecord; } }); Mock <ICorsPolicyProviderFactory> policyProviderFactoryMock = new Mock <ICorsPolicyProviderFactory>(); policyProviderFactoryMock .Setup(f => f.GetCorsPolicyProvider(It.IsAny <HttpRequestMessage>())) .Returns(new EnableCorsAttribute(origins: "*", headers: "*", methods: "*")); CorsPolicyProviderFactoryTracer tracer = new CorsPolicyProviderFactoryTracer(policyProviderFactoryMock.Object, traceWriterMock.Object); HttpRequestMessage requestMessage = new HttpRequestMessage(); requestMessage.Method = HttpMethod.Get; requestMessage.Headers.Add(CorsConstants.Origin, "http://example.com"); tracer.GetCorsPolicyProvider(requestMessage); Assert.NotNull(beginTrace); Assert.Equal(TraceCategories.CorsCategory, beginTrace.Category); Assert.Equal(TraceLevel.Info, beginTrace.Level); Assert.Equal("GetCorsPolicyProvider", beginTrace.Operation); Assert.Equal( @"CorsRequestContext: 'Origin: http://example.com, HttpMethod: GET, IsPreflight: False, Host: , AccessControlRequestMethod: null, RequestUri: , AccessControlRequestHeaders: {}'", beginTrace.Message); Assert.NotNull(endTrace); Assert.Equal(TraceCategories.CorsCategory, endTrace.Category); Assert.Equal(TraceLevel.Info, endTrace.Level); Assert.Equal("GetCorsPolicyProvider", endTrace.Operation); Assert.Equal( @"CorsPolicyProvider selected: 'System.Web.Http.Cors.EnableCorsAttribute'", endTrace.Message); }
public void GetCorsPolicyProvider_ReturnsNullWhenInnerReturnsNull() { Mock<ITraceWriter> traceWriterMock = new Mock<ITraceWriter>(); ICorsPolicyProvider expectedPolicyProvider = new Mock<ICorsPolicyProvider>().Object; Mock<ICorsPolicyProviderFactory> policyProviderFactoryMock = new Mock<ICorsPolicyProviderFactory>(); policyProviderFactoryMock .Setup(f => f.GetCorsPolicyProvider(It.IsAny<HttpRequestMessage>())) .Returns((ICorsPolicyProvider)null); CorsPolicyProviderFactoryTracer tracer = new CorsPolicyProviderFactoryTracer(policyProviderFactoryMock.Object, traceWriterMock.Object); ICorsPolicyProvider policyProvider = tracer.GetCorsPolicyProvider(new HttpRequestMessage()); Assert.Null(policyProvider); }
public void GetCorsPolicyProvider_ReturnsCorsPolicyProviderTracer() { Mock<ITraceWriter> traceWriterMock = new Mock<ITraceWriter>(); ICorsPolicyProvider expectedPolicyProvider = new Mock<ICorsPolicyProvider>().Object; Mock<ICorsPolicyProviderFactory> policyProviderFactoryMock = new Mock<ICorsPolicyProviderFactory>(); policyProviderFactoryMock .Setup(f => f.GetCorsPolicyProvider(It.IsAny<HttpRequestMessage>())) .Returns(expectedPolicyProvider); CorsPolicyProviderFactoryTracer tracer = new CorsPolicyProviderFactoryTracer(policyProviderFactoryMock.Object, traceWriterMock.Object); ICorsPolicyProvider policyProvider = tracer.GetCorsPolicyProvider(new HttpRequestMessage()); Assert.IsType(typeof(CorsPolicyProviderTracer), policyProvider); }
public void GetCorsPolicyProvider_ReturnsNullWhenInnerReturnsNull() { Mock <ITraceWriter> traceWriterMock = new Mock <ITraceWriter>(); ICorsPolicyProvider expectedPolicyProvider = new Mock <ICorsPolicyProvider>().Object; Mock <ICorsPolicyProviderFactory> policyProviderFactoryMock = new Mock <ICorsPolicyProviderFactory>(); policyProviderFactoryMock .Setup(f => f.GetCorsPolicyProvider(It.IsAny <HttpRequestMessage>())) .Returns((ICorsPolicyProvider)null); CorsPolicyProviderFactoryTracer tracer = new CorsPolicyProviderFactoryTracer(policyProviderFactoryMock.Object, traceWriterMock.Object); ICorsPolicyProvider policyProvider = tracer.GetCorsPolicyProvider(new HttpRequestMessage()); Assert.Null(policyProvider); }
public void GetCorsPolicyProvider_ReturnsCorsPolicyProviderTracer() { Mock <ITraceWriter> traceWriterMock = new Mock <ITraceWriter>(); ICorsPolicyProvider expectedPolicyProvider = new Mock <ICorsPolicyProvider>().Object; Mock <ICorsPolicyProviderFactory> policyProviderFactoryMock = new Mock <ICorsPolicyProviderFactory>(); policyProviderFactoryMock .Setup(f => f.GetCorsPolicyProvider(It.IsAny <HttpRequestMessage>())) .Returns(expectedPolicyProvider); CorsPolicyProviderFactoryTracer tracer = new CorsPolicyProviderFactoryTracer(policyProviderFactoryMock.Object, traceWriterMock.Object); ICorsPolicyProvider policyProvider = tracer.GetCorsPolicyProvider(new HttpRequestMessage()); Assert.IsType(typeof(CorsPolicyProviderTracer), policyProvider); }
public void GetCorsPolicyProvider_CallsInner() { bool innerIsCalled = false; Mock<ITraceWriter> traceWriterMock = new Mock<ITraceWriter>(); Mock<ICorsPolicyProviderFactory> policyProviderFactoryMock = new Mock<ICorsPolicyProviderFactory>(); policyProviderFactoryMock .Setup(f => f.GetCorsPolicyProvider(It.IsAny<HttpRequestMessage>())) .Returns(() => { innerIsCalled = true; return new Mock<ICorsPolicyProvider>().Object; }); CorsPolicyProviderFactoryTracer tracer = new CorsPolicyProviderFactoryTracer(policyProviderFactoryMock.Object, traceWriterMock.Object); tracer.GetCorsPolicyProvider(new HttpRequestMessage()); Assert.True(innerIsCalled); }
public void GetCorsPolicyProvider_EmitTraces() { TraceRecord beginTrace = null; TraceRecord endTrace = null; Mock<ITraceWriter> traceWriterMock = new Mock<ITraceWriter>(); traceWriterMock .Setup(t => t.Trace(It.IsAny<HttpRequestMessage>(), It.IsAny<string>(), It.IsAny<TraceLevel>(), It.IsAny<Action<TraceRecord>>())) .Callback<HttpRequestMessage, string, TraceLevel, Action<TraceRecord>>((request, category, level, traceAction) => { TraceRecord traceRecord = new TraceRecord(request, category, level); traceAction(traceRecord); if (traceRecord.Kind == TraceKind.Begin) { beginTrace = traceRecord; } else if (traceRecord.Kind == TraceKind.End) { endTrace = traceRecord; } }); Mock<ICorsPolicyProviderFactory> policyProviderFactoryMock = new Mock<ICorsPolicyProviderFactory>(); policyProviderFactoryMock .Setup(f => f.GetCorsPolicyProvider(It.IsAny<HttpRequestMessage>())) .Returns(new EnableCorsAttribute(origins: "*", headers: "*", methods: "*")); CorsPolicyProviderFactoryTracer tracer = new CorsPolicyProviderFactoryTracer(policyProviderFactoryMock.Object, traceWriterMock.Object); HttpRequestMessage requestMessage = new HttpRequestMessage(); requestMessage.Method = HttpMethod.Get; requestMessage.Headers.Add(CorsConstants.Origin, "http://example.com"); tracer.GetCorsPolicyProvider(requestMessage); Assert.NotNull(beginTrace); Assert.Equal(TraceCategories.CorsCategory, beginTrace.Category); Assert.Equal(TraceLevel.Info, beginTrace.Level); Assert.Equal("GetCorsPolicyProvider", beginTrace.Operation); Assert.Equal( @"CorsRequestContext: 'Origin: http://example.com, HttpMethod: GET, IsPreflight: False, Host: , AccessControlRequestMethod: null, RequestUri: , AccessControlRequestHeaders: {}'", beginTrace.Message); Assert.NotNull(endTrace); Assert.Equal(TraceCategories.CorsCategory, endTrace.Category); Assert.Equal(TraceLevel.Info, endTrace.Level); Assert.Equal("GetCorsPolicyProvider", endTrace.Operation); Assert.Equal( @"CorsPolicyProvider selected: 'System.Web.Http.Cors.EnableCorsAttribute'", endTrace.Message); }