void Ex04() { var keyDownHandler = Substitute.For <Action <VirtualKey> >(); var dependencyArgumentsHandler = Substitute.For <Action <TestUwpControllers.IDependency1, TestUwpControllers.IDependency2, TestUwpControllers.IDependency3> >(); var dependency1 = new TestUwpControllers.Dependency1(); var dependency2 = new TestUwpControllers.Dependency2(); var dependency3 = new TestUwpControllers.Dependency3(); TestUwpControllers.DependencyParameterController controller = null; Given("a controller", () => controller = new TestUwpControllers.DependencyParameterController { KeyDownAssertionHandler = keyDownHandler, DependencyArgumentsHandler = dependencyArgumentsHandler }); When("the KeyDown event is raised using the EventHandlerBase", () => UwpController.Using(Substitute.For <IKeyRoutedEventArgsResolver>(), typeof(KeyRoutedEventArgsWrapper)) .Apply(resolver => resolver.Key(Arg.Any <KeyRoutedEventArgs>()).Returns(VirtualKey.Enter)) .EventHandlersOf(controller) .GetBy("Element") .Resolve <TestUwpControllers.IDependency1>(() => dependency1) .Resolve <TestUwpControllers.IDependency2>(() => dependency2) .Resolve <TestUwpControllers.IDependency3>(() => dependency3) .Raise("KeyDown") ); Then("the KeyDown event should be handled", () => keyDownHandler.Received(1).Invoke(VirtualKey.Enter)); Then("the dependency arguments should be injected", () => dependencyArgumentsHandler.Received(1).Invoke(dependency1, dependency2, dependency3)); }
void Ex08() { var pointerPressedHandler = Substitute.For <Action <PointerDeviceType> >(); var dependencyArgumentsHandler = Substitute.For <Action <TestUwpControllers.IDependency1, TestUwpControllers.IDependency2, TestUwpControllers.IDependency3> >(); var dependency1 = new TestUwpControllers.Dependency1(); var dependency2 = new TestUwpControllers.Dependency2(); var dependency3 = new TestUwpControllers.Dependency3(); TestUwpControllers.DependencyParameterController controller = null; Given("a controller", () => controller = new TestUwpControllers.DependencyParameterController { PointerPressedHandler = pointerPressedHandler, DependencyArgumentsHandler = dependencyArgumentsHandler }); When("the PointerPressed event is raised using the EventHandlerBase", () => UwpController.Using(Substitute.For <IPointerRoutedEventArgsResolver>(), typeof(PointerRoutedEventArgsWrapper)) .Apply(resolver => resolver.Pointer(Arg.Any <PointerRoutedEventArgs>()).Returns((Pointer)null)) .Using(Substitute.For <IPointerResolver>(), typeof(PointerWrapper)) .Apply(resolver => resolver.PointerDeviceType(Arg.Any <Pointer>()).Returns(PointerDeviceType.Mouse)) .EventHandlersOf(controller) .GetBy("Element") .Resolve <TestUwpControllers.IDependency1>(() => dependency1) .Resolve <TestUwpControllers.IDependency2>(() => dependency2) .Resolve <TestUwpControllers.IDependency3>(() => dependency3) .Raise("PointerPressed") ); Then("the PointerPressed event should be handled", () => pointerPressedHandler.Received(1).Invoke(PointerDeviceType.Mouse)); Then("the dependency arguments should be injected", () => dependencyArgumentsHandler.Received(1).Invoke(dependency1, dependency2, dependency3)); }