public void GetControllerTypes_CallsMocks() { // Arrange TestTraceWriter traceWriter = new TestTraceWriter(); DefaultHttpControllerTypeResolverTracer tracer = new DefaultHttpControllerTypeResolverTracer( HttpControllerTypeResolver.Object, traceWriter ); // Act tracer.GetControllerTypes(AssembliesResolver.Object); // Assert (particularly important tracer delegates to original DefaultHttpControllerTypeResolver) HttpControllerTypeResolver.Verify( controller => controller.GetControllerTypes(AssembliesResolver.Object), Times.Once() ); // Predicate is not called on null entries or internal types in the Type arrays (see TypeIsVisible) HttpControllerTypeResolver.VerifyGet( controller => controller.IsControllerTypePredicate, Times.Exactly(7) ); AssembliesResolver.Verify(resolver => resolver.GetAssemblies(), Times.Once()); foreach (Mock <MockableAssembly> mock in Assemblies) { mock.VerifyGet(assembly => assembly.IsDynamic, Times.Once()); mock.Verify( assembly => assembly.GetTypes(), mock.Object.IsDynamic ? Times.Never() : Times.Once() ); } }
public void GetControllerTypes_TracesAsExpected() { // Arrange TestTraceWriter traceWriter = new TestTraceWriter(); DefaultHttpControllerTypeResolverTracer tracer = new DefaultHttpControllerTypeResolverTracer(HttpControllerTypeResolver.Object, traceWriter); // Act ICollection <Type> types = tracer.GetControllerTypes(AssembliesResolver.Object); // Assert Assert.NotNull(traceWriter.Traces); Assert.Equal(ExpectedTraces, traceWriter.Traces, new TraceRecordComparer()); }
public void GetControllerTypes_ReturnsExpectedTypes() { // Arrange TestTraceWriter traceWriter = new TestTraceWriter(); DefaultHttpControllerTypeResolverTracer tracer = new DefaultHttpControllerTypeResolverTracer(HttpControllerTypeResolver.Object, traceWriter); // Act ICollection <Type> types = tracer.GetControllerTypes(AssembliesResolver.Object); // Assert Assert.NotNull(types); Assert.NotEmpty(types); Assert.Equal(ExpectedTypes, types); }