示例#1
0
        public void Setup()
        {
            _windowManager = A.Fake <WindowManager>();

            _quarterSize  = new Size(960, 540);
            _leftTop      = new SquareGridElement(new Dimensions(new Point(0, 0), _quarterSize));
            _centerTop    = new SquareGridElement(new Dimensions(new Point(960, 0), _quarterSize));
            _leftCenter   = new SquareGridElement(new Dimensions(new Point(0, 540), _quarterSize));
            _centerCenter = new SquareGridElement(new Dimensions(new Point(960, 540), _quarterSize));

            _leftTop.SetNeighbour(_centerTop, GridDirections.Left);
            _leftTop.SetNeighbour(_centerTop, GridDirections.Right);
            _leftTop.SetNeighbour(_leftCenter, GridDirections.Up);
            _leftTop.SetNeighbour(_leftCenter, GridDirections.Down);
            _centerTop.SetNeighbour(_leftTop, GridDirections.Left);
            _centerTop.SetNeighbour(_leftTop, GridDirections.Right);
            _centerTop.SetNeighbour(_centerCenter, GridDirections.Down);
            _centerTop.SetNeighbour(_centerCenter, GridDirections.Up);
            _leftCenter.SetNeighbour(_centerCenter, GridDirections.Right);
            _leftCenter.SetNeighbour(_centerCenter, GridDirections.Left);
            _leftCenter.SetNeighbour(_leftTop, GridDirections.Up);
            _leftCenter.SetNeighbour(_leftTop, GridDirections.Down);
            _centerCenter.SetNeighbour(_leftCenter, GridDirections.Right);
            _centerCenter.SetNeighbour(_leftCenter, GridDirections.Left);
            _centerCenter.SetNeighbour(_centerTop, GridDirections.Down);
            _centerCenter.SetNeighbour(_centerTop, GridDirections.Up);

            _quarterGrid = new Grid(_windowManager);
            _quarterGrid.AddElement(_leftTop);
            _quarterGrid.AddElement(_leftCenter);
            _quarterGrid.AddElement(_centerCenter);
            _quarterGrid.AddElement(_centerTop);
        }
示例#2
0
        public void ShouldNotNotifyOldGridAboutHotkeysWHenNewGridIsLoaded()
        {
            //given
            var activeWindow = A.Fake <WindowRepresentation>();

            var windowManager = A.Fake <WindowManager>();

            A.CallTo(() => windowManager.GetActiveWindow()).Returns(activeWindow);

            var firstLoadedGrid        = new Grid(windowManager);
            var firstLoadedGridElement = new SquareGridElement(new Dimensions(new Point(0, 0), new Size(20, 20)));

            firstLoadedGrid.AddElement(firstLoadedGridElement);
            var secondLoadedGrid        = new Grid(windowManager);
            var secondLoadedGridElement = new SquareGridElement(new Dimensions(new Point(20, 20), new Size(20, 20)));

            secondLoadedGrid.AddElement(secondLoadedGridElement);

            var windowsOnGridController = new WindowsOnGridController(_dummyHotkeyConfiguration);

            windowsOnGridController.LoadGrid(firstLoadedGrid);
            windowsOnGridController.LoadGrid(secondLoadedGrid);

            //when
            _dummyHotkeyConfiguration.Left.HotkeyPressed  += Raise.WithEmpty();
            _dummyHotkeyConfiguration.Right.HotkeyPressed += Raise.WithEmpty();
            _dummyHotkeyConfiguration.Up.HotkeyPressed    += Raise.WithEmpty();
            _dummyHotkeyConfiguration.Down.HotkeyPressed  += Raise.WithEmpty();

            //then
            A.CallTo(() => activeWindow.SetDimensions(firstLoadedGridElement.Dimensions)).MustNotHaveHappened();
            A.CallTo(() => activeWindow.SetDimensions(secondLoadedGridElement.Dimensions)).MustHaveHappened(Repeated.Exactly.Times(4));
        }
示例#3
0
        public void ShouldMoveActiveWindowAroundLoadedGridWhenHotkeyPressed()
        {
            //given
            var activeWindow = A.Fake <WindowRepresentation>();
            var dimensions   = new Dimensions(new Point(0, 0), new Size(100, 100));

            A.CallTo(() => activeWindow.Dimensions).Returns(dimensions);

            var windowManager = A.Fake <WindowManager>();

            A.CallTo(() => windowManager.GetActiveWindow()).Returns(activeWindow);

            var grid        = new Grid(windowManager);
            var gridElement = new SquareGridElement(new Dimensions(new Point(0, 0), new Size(1, 1)));

            grid.AddElement(gridElement);

            var windowsOnGridController = new WindowsOnGridController(_dummyHotkeyConfiguration);

            windowsOnGridController.LoadGrid(grid);

            //when
            _dummyHotkeyConfiguration.Left.HotkeyPressed  += Raise.WithEmpty();
            _dummyHotkeyConfiguration.Right.HotkeyPressed += Raise.WithEmpty();
            _dummyHotkeyConfiguration.Up.HotkeyPressed    += Raise.WithEmpty();
            _dummyHotkeyConfiguration.Down.HotkeyPressed  += Raise.WithEmpty();

            //then
            A.CallTo(() => activeWindow.SetDimensions(gridElement.Dimensions)).MustHaveHappened(Repeated.Exactly.Times(4));
        }
示例#4
0
        public void ShouldSetWindowDimensions()
        {
            //given
            var window      = A.Fake <WindowRepresentation>();
            var gridElement = new SquareGridElement(new Dimensions(new Point(1, 2), new Size(3, 4)));

            //when
            gridElement.SetWindow(window);

            //then
            A.CallTo(
                () =>
                window.SetDimensions(
                    A <Dimensions> .That.Matches(dimensions => dimensions.Equals(gridElement.Dimensions))));
        }
示例#5
0
        public void ShouldRecognizeIfWindowIsInGridOrNot()
        {
            //given
            var gridElementDimensions = new Dimensions(new Point(1, 2), new Size(3, 4));
            var dimensionsOutsideGrid = new Dimensions(new Point(5, 6), new Size(7, 8));

            var gridElement = new SquareGridElement(gridElementDimensions);

            var windowOutsideGrid = A.Fake <WindowRepresentation>();

            A.CallTo(() => windowOutsideGrid.Dimensions).Returns(dimensionsOutsideGrid);

            var windowInsideGrid = A.Fake <WindowRepresentation>();

            A.CallTo(() => windowInsideGrid.Dimensions).Returns(gridElementDimensions);

            //then
            Assert.That(gridElement.HasWindow(windowInsideGrid));
            Assert.That(!gridElement.HasWindow(windowOutsideGrid));
        }