private ProxyGenerationOptions CreateProxyOptions <T>(IEnumerable <IAlternateMethod> methodImplementations, IEnumerable <object> mixins) { var generationHook = new AlternateTypeGenerationHook <T>(methodImplementations, Logger); var selector = new AlternateTypeSelector(); var options = new ProxyGenerationOptions(generationHook) { Selector = selector }; if (mixins != null) { foreach (var mixin in mixins) { options.AddMixinInstance(mixin); } } return(options); }
public void ReturnEmptyArrayWithoutMatch() { var loggerMock = new Mock <ILogger>(); var alternateMock1 = new Mock <IAlternateMethod>(); alternateMock1.Setup(a => a.MethodToImplement).Returns(typeof(IDisposable).GetMethod("Dispose")); var alternateMock2 = new Mock <IAlternateMethod>(); alternateMock2.Setup(a => a.MethodToImplement).Returns(typeof(AlternateTypeSelectorShould).GetMethod("ReturnMatchingInterceptors")); var interceptors = new IInterceptor[] { new AlternateTypeToCastleInterceptorAdapter(alternateMock1.Object, loggerMock.Object, new Mock <IMessageBroker>().Object, new Mock <IProxyFactory>().Object, () => new ExecutionTimer(Stopwatch.StartNew()), () => RuntimePolicy.On), new AlternateTypeToCastleInterceptorAdapter(alternateMock2.Object, loggerMock.Object, new Mock <IMessageBroker>().Object, new Mock <IProxyFactory>().Object, () => new ExecutionTimer(Stopwatch.StartNew()), () => RuntimePolicy.On) }; var selector = new AlternateTypeSelector(); var result = selector.SelectInterceptors(null, typeof(AlternateTypeSelectorShould).GetMethod("ReturnEmptyArrayWithoutMatch"), interceptors); Assert.Empty(result); }