Beispiel #1
0
        public void GivenAddedRoutedCommandHandlerWithCommand_WhenRoutedCommandExecuted_ThenCommandExecuted()
        {
            // Given
            var parameter = new object();

            var mocks   = new MockRepository();
            var command = mocks.StrictMock <ICommand>();

            command.Expect(c => c.CanExecute(parameter)).Return(true);
            command.Expect(c => c.Execute(parameter));
            mocks.ReplayAll();

            var frameworkElement           = new FrameworkElement();
            RoutedCommandHandlers handlers = RoutedCommandHandlers.GetCommands(frameworkElement);

            var routedCommand = new RoutedCommand();
            var handler       = new RoutedCommandHandler
            {
                RoutedCommand = routedCommand,
                Command       = command
            };

            handlers.Add(handler);

            // When
            routedCommand.Execute(parameter, frameworkElement);

            // Then
            mocks.VerifyAll();
        }
Beispiel #2
0
        public void GivenFrameworkElement_WhenCommandsObtainedThroughRoutedCommands_ThenEmptyRoutedCommandHandlersReturned()
        {
            // Given
            var frameworkElement = new FrameworkElement();

            // When
            RoutedCommandHandlers handlers = RoutedCommandHandlers.GetCommands(frameworkElement);

            // Then
            Assert.IsEmpty(handlers);
        }
    /// <summary>
    ///  Gets the collection of RoutedCommandHandler for a given element, creating
    ///  it if it doesn't already exist.
    /// </summary>
    public static RoutedCommandHandlers GetCommands(FrameworkElement element)
    {
        RoutedCommandHandlers handlers = (RoutedCommandHandlers)element.GetValue(CommandsProperty);

        if (handlers == null)
        {
            handlers = new RoutedCommandHandlers(element);
            element.SetValue(CommandsProperty, handlers);
        }

        return(handlers);
    }
Beispiel #4
0
        public void GivenHandlersFromFrameworkElement_WhenCommandsObtainedTwice_ThenSameInstanceReturned()
        {
            // Given
            var frameworkElement            = new FrameworkElement();
            RoutedCommandHandlers handlersA = RoutedCommandHandlers.GetCommands(frameworkElement);

            // When
            RoutedCommandHandlers handlersB = RoutedCommandHandlers.GetCommands(frameworkElement);

            // Then
            Assert.AreSame(handlersA, handlersB);
        }
Beispiel #5
0
        public void GivenHandlersFromFrameworkElement_WhenRoutedCommandHandlerAdded_ThenPropertiesRegisteredAsCommandBindingToFrameworkElement()
        {
            // Given
            var frameworkElement           = new FrameworkElement();
            RoutedCommandHandlers handlers = RoutedCommandHandlers.GetCommands(frameworkElement);

            // When
            var routedCommand = new RoutedCommand();
            var handler       = new RoutedCommandHandler
            {
                RoutedCommand = routedCommand
            };

            handlers.Add(handler);

            // Then
            Assert.AreEqual(1, handlers.Count);
            Assert.AreSame(routedCommand, handlers.First().RoutedCommand);
        }
Beispiel #6
0
        public void GivenAddedRoutedCommandHandlerWithoutCommand_WhenRoutedCommandExecuted_ThenNoExceptionsAreThrown()
        {
            // Given
            var frameworkElement           = new FrameworkElement();
            RoutedCommandHandlers handlers = RoutedCommandHandlers.GetCommands(frameworkElement);

            var parameter = new object();

            var routedCommand = new RoutedCommand();
            var handler       = new RoutedCommandHandler
            {
                RoutedCommand = routedCommand
            };

            handlers.Add(handler);

            // When
            void Call() => routedCommand.Execute(parameter, frameworkElement);

            // Then
            Assert.DoesNotThrow(Call);
        }