Example #1
0
        public void Desktop_InputIsSentToActiveWorkspaceOnly()
        {
            Desktop desktop = new Desktop();

            var w1 = CommonMocks.Widget("w1");
            var w2 = CommonMocks.Widget("w2");

            var workspace1 = new Workspace("a");
            var workspace2 = new Workspace("b");

            workspace1.Add(w1.Object);
            workspace2.Add(w2.Object);

            desktop.PushWorkspace(workspace2);
            desktop.PushWorkspace(workspace1);

            desktop.ClearAnimations();
            int goodCalls = 0;
            int badCalls  = 0;

            w1.Setup(x => x.ProcessEvent(It.IsAny <WidgetEventArgs>()))
            .Callback <WidgetEventArgs>(e => ++ goodCalls);

            w2.Setup(x => x.ProcessEvent(It.IsAny <WidgetEventArgs>()))
            .Callback <WidgetEventArgs>(e => ++ badCalls);

            desktop.ButtonDown(MenuInputButton.Down);
            desktop.ButtonUp(MenuInputButton.Down);

            goodCalls.Should().Be(2);
            badCalls.Should().Be(0);
        }