Skip to content

Commit

Permalink
fixed unit tests
Browse files Browse the repository at this point in the history
  • Loading branch information
david-driscoll committed Jan 28, 2019
1 parent 6d25f85 commit 664dbb0
Show file tree
Hide file tree
Showing 2 changed files with 55 additions and 41 deletions.
79 changes: 44 additions & 35 deletions src/Azure.Functions/ServiceBindingProvider.cs
Original file line number Diff line number Diff line change
Expand Up @@ -80,34 +80,40 @@ async Task IFunctionInvocationFilter.OnExecutingAsync(FunctionExecutingContext c
cancellationToken.Register(() => DisposeScope(context.FunctionInstanceId));
var scope = GetScope(context.FunctionInstanceId);

var filters = scope.ServiceProvider.GetRequiredService<IEnumerable<IRocketSurgeryFunctionInvocationFilter>>();
var rsContext = new RocketSurgeryFunctionExecutingContext(
scope.ServiceProvider,
context.Arguments,
context.FunctionInstanceId,
context.FunctionName,
context.Properties,
context.Logger
);
foreach (var filter in filters)
await filter.OnExecutingAsync(rsContext, cancellationToken);
var filters = scope.ServiceProvider.GetService(typeof(IEnumerable<IRocketSurgeryFunctionInvocationFilter>)) as IEnumerable<IRocketSurgeryFunctionInvocationFilter>;
if (filters != null)
{
var rsContext = new RocketSurgeryFunctionExecutingContext(
scope.ServiceProvider,
context.Arguments,
context.FunctionInstanceId,
context.FunctionName,
context.Properties,
context.Logger
);
foreach (var filter in filters)
await filter.OnExecutingAsync(rsContext, cancellationToken);
}
}

async Task IFunctionInvocationFilter.OnExecutedAsync(FunctionExecutedContext context, CancellationToken cancellationToken)
{
var scope = GetScope(context.FunctionInstanceId);
var filters = scope.ServiceProvider.GetRequiredService<IEnumerable<IRocketSurgeryFunctionInvocationFilter>>();
var rsContext = new RocketSurgeryFunctionExecutedContext(
scope.ServiceProvider,
context.Arguments,
context.FunctionInstanceId,
context.FunctionName,
context.Properties,
context.Logger,
context.FunctionResult
);
foreach (var filter in filters)
await filter.OnExecutedAsync(rsContext, cancellationToken);
var filters = scope.ServiceProvider.GetService(typeof(IEnumerable<IRocketSurgeryFunctionInvocationFilter>)) as IEnumerable<IRocketSurgeryFunctionInvocationFilter>;
if (filters != null)
{
var rsContext = new RocketSurgeryFunctionExecutedContext(
scope.ServiceProvider,
context.Arguments,
context.FunctionInstanceId,
context.FunctionName,
context.Properties,
context.Logger,
context.FunctionResult
);
foreach (var filter in filters)
await filter.OnExecutedAsync(rsContext, cancellationToken);
}

DisposeScope(context.FunctionInstanceId);
}
Expand All @@ -116,18 +122,21 @@ async Task IFunctionExceptionFilter.OnExceptionAsync(FunctionExceptionContext co
{

var scope = GetScope(context.FunctionInstanceId);
var filters = scope.ServiceProvider.GetRequiredService<IEnumerable<IRocketSurgeryFunctionExceptionFilter>>();
var rsContext = new RocketSurgeryFunctionExceptionContext(
scope.ServiceProvider,
context.FunctionInstanceId,
context.FunctionName,
context.Properties,
context.Logger,
context.Exception,
context.ExceptionDispatchInfo
);
foreach (var filter in filters)
await filter.OnExceptionAsync(rsContext, cancellationToken);
var filters = scope.ServiceProvider.GetService(typeof(IEnumerable<IRocketSurgeryFunctionExceptionFilter>)) as IEnumerable<IRocketSurgeryFunctionExceptionFilter>;
if (filters != null)
{
var rsContext = new RocketSurgeryFunctionExceptionContext(
scope.ServiceProvider,
context.FunctionInstanceId,
context.FunctionName,
context.Properties,
context.Logger,
context.Exception,
context.ExceptionDispatchInfo
);
foreach (var filter in filters)
await filter.OnExceptionAsync(rsContext, cancellationToken);
}

DisposeScope(context.FunctionInstanceId);
}
Expand Down
17 changes: 11 additions & 6 deletions test/Azure.Tests/InjectBindingProviderTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -30,11 +30,16 @@ public InjectBindingProviderTests(ITestOutputHelper outputHelper) : base(outputH
.ReturnsLazily(call => scope);
A.CallTo(() => scope.ServiceProvider)
.ReturnsLazily(call => AutoFake.Container.BeginLifetimeScope().Resolve<IServiceProvider>());
AutoFake.Provide(A.Fake<IFunctionFilter>());
A.CallTo(() => scope.ServiceProvider.GetService(typeof(IEnumerable<IFunctionFilter>)))
.ReturnsLazily(call => Enumerable.Empty<IFunctionFilter>());
A.CallTo(() => AutoFake.Resolve<IServiceProvider>().GetService(typeof(IEnumerable<IFunctionFilter>)))
.ReturnsLazily(call => Enumerable.Empty<IFunctionFilter>());
AutoFake.Provide(A.Fake<IRocketSurgeryFunctionInvocationFilter>());
A.CallTo(() => scope.ServiceProvider.GetService(typeof(IEnumerable<IRocketSurgeryFunctionInvocationFilter>)))
.ReturnsLazily(call => Enumerable.Empty<IRocketSurgeryFunctionInvocationFilter>());
A.CallTo(() => AutoFake.Resolve<IServiceProvider>().GetService(typeof(IEnumerable<IRocketSurgeryFunctionInvocationFilter>)))
.ReturnsLazily(call => Enumerable.Empty<IRocketSurgeryFunctionInvocationFilter>());
AutoFake.Provide(A.Fake<IRocketSurgeryFunctionExceptionFilter>());
A.CallTo(() => scope.ServiceProvider.GetService(typeof(IEnumerable<IRocketSurgeryFunctionExceptionFilter>)))
.ReturnsLazily(call => Enumerable.Empty<IRocketSurgeryFunctionExceptionFilter>());
A.CallTo(() => AutoFake.Resolve<IServiceProvider>().GetService(typeof(IEnumerable<IRocketSurgeryFunctionExceptionFilter>)))
.ReturnsLazily(call => Enumerable.Empty<IRocketSurgeryFunctionExceptionFilter>());
}

[Fact]
Expand Down Expand Up @@ -73,7 +78,7 @@ await provider.OnExecutedAsync(
CancellationToken.None
);

A.CallTo(() => container.GetService(typeof(IServiceScopeFactory))).MustNotHaveHappened();
A.CallTo(() => container.GetService(typeof(IServiceScopeFactory))).MustHaveHappened();
}

[Fact]
Expand Down

0 comments on commit 664dbb0

Please sign in to comment.