public void NonMethodVirtualShouldSatisfyRequirementIfDeclaringTypeRegisteredForInterface() { WindsorContainer container = new WindsorContainer(); var logger = LoggerFactory.Create <object>().BindToWindsor(container.Kernel); logger.LogInvocationOf <TestClass>(t => t.PublicNonVirtualMethod()); MethodMustBeVirtualIfDeclaringTypeRegisteredOnlyForItself requirement = new MethodMustBeVirtualIfDeclaringTypeRegisteredOnlyForItself(container.Kernel); container.Register(Component.For <ITestClass>().ImplementedBy <TestClass>()); Method <TestClass>(t => t.PublicNonVirtualMethod()).ShouldSatisfy(requirement); }
private MethodMustBeVirtualIfDeclaringTypeRegisteredOnlyForItself ConfigureLoggerAndRegisterComponentForItself <TComponent>(Expression <Action <TComponent> > loggedMethod) where TComponent : class { WindsorContainer container = new WindsorContainer(); var logger = LoggerFactory.Create <object>().BindToWindsor(container.Kernel); logger.LogInvocationOf(loggedMethod); MethodMustBeVirtualIfDeclaringTypeRegisteredOnlyForItself requirement = new MethodMustBeVirtualIfDeclaringTypeRegisteredOnlyForItself(container.Kernel); container.Register(Component.For <TComponent>().ImplementedBy <TComponent>()); return(requirement); }