Ejemplo n.º 1
0
        public void PointsOnPopulationAndProductionWindowAreCorrectColors()
        {
            var window = new PopulationAndProductionWindow(GetMultiColoredScreen(), GetWindowFinder(), Substitute.For <IInputDevice>(), Substitute.For <IOCRReader>(), Substitute.For <ISettingsStore>());

            AssertPixelsOnControlAreCorrect(window);
            AssertGettingOutOfBoundsPixelsThrows(window);
        }
Ejemplo n.º 2
0
        public void InitializesWithNonZeroOffsetAndChangesLater()
        {
            var screen       = Substitute.For <IScreen>();
            var windowFinder = Substitute.For <IWindowFinder>();

            windowFinder.GetWindowHandle(Arg.Any <string>()).Returns(IntPtr.Zero);
            windowFinder.GetDimensions(IntPtr.Zero).Returns(new NativeMethods.RECT {
                Bottom = 924, Left = 0, Right = 1251, Top = 0
            });

            var inputDevice = Substitute.For <IInputDevice>();
            var ocr         = Substitute.For <IOCRReader>();
            var settings    = Substitute.For <ISettingsStore>();

            settings.HorizontalWindowOffset.Returns(1);
            settings.VerticalWindowOffset.Returns(2);

            var window = new PopulationAndProductionWindow(screen, windowFinder, inputDevice, ocr, settings);

            Assert.AreEqual(926, window.Bottom);
            Assert.AreEqual(1, window.Left);
            Assert.AreEqual(1252, window.Right);
            Assert.AreEqual(2, window.Top);

            settings.HorizontalWindowOffset.Returns(2);
            settings.VerticalWindowOffset.Returns(3);

            Assert.AreEqual(927, window.Bottom);
            Assert.AreEqual(2, window.Left);
            Assert.AreEqual(1253, window.Right);
            Assert.AreEqual(3, window.Top);
        }
Ejemplo n.º 3
0
        public void ChangesControlOffset()
        {
            var screen       = Substitute.For <IScreen>();
            var windowFinder = Substitute.For <IWindowFinder>();

            windowFinder.GetWindowHandle(Arg.Any <string>()).Returns(IntPtr.Zero);
            windowFinder.GetDimensions(IntPtr.Zero).Returns(new NativeMethods.RECT {
                Bottom = 924, Left = 0, Right = 1251, Top = 0
            });

            var inputDevice = Substitute.For <IInputDevice>();
            var ocr         = Substitute.For <IOCRReader>();
            var settings    = Substitute.For <ISettingsStore>();

            settings.HorizontalWindowOffset.Returns(0);
            settings.VerticalWindowOffset.Returns(0);

            var window = new PopulationAndProductionWindow(screen, windowFinder, inputDevice, ocr, settings);

            Assert.AreEqual(613, window.ResearchTable.Bottom);
            Assert.AreEqual(406, window.ResearchTable.Left);
            Assert.AreEqual(776, window.ResearchTable.Right);
            Assert.AreEqual(406, window.ResearchTable.Top);

            settings.HorizontalWindowOffset.Returns(5);
            settings.VerticalWindowOffset.Returns(5);

            Assert.AreEqual(618, window.ResearchTable.Bottom);
            Assert.AreEqual(411, window.ResearchTable.Left);
            Assert.AreEqual(781, window.ResearchTable.Right);
            Assert.AreEqual(411, window.ResearchTable.Top);
        }
        public void ReadsActualResearchTableOnLargeScreen()
        {
            var windowFinder = Substitute.For <IWindowFinder>();

            windowFinder.GetWindowHandle(Arg.Any <string>()).Returns(IntPtr.Zero);
            windowFinder.GetDimensions(IntPtr.Zero).Returns(new NativeMethods.RECT {
                Bottom = 1224, Left = 500, Right = 1751, Top = 300
            });
            var screenshot  = new HijackableScreenShotCapturer();
            var inputDevice = new ActualResearchTableOnScreenInputDevice(screenshot);
            var screen      = new Screen(new ScreenDataRetriever(Substitute.For <ISleeper>(), screenshot));
            var ocr         = new OCRReader(new OCRSplitter());
            var settings    = Substitute.For <ISettingsStore>();

            settings.HorizontalWindowOffset.Returns(5);
            settings.VerticalWindowOffset.Returns(5);
            var window = new PopulationAndProductionWindow(screen, windowFinder, inputDevice, ocr, settings);

            var table = window.ResearchTable.GetTable();

            Assert.AreEqual(13, table.Count);

            Assert.AreEqual("GenomeSequenceResearch", table[0][0]);
            Assert.AreEqual("TerraformingModule", table[1][0]);
            Assert.AreEqual("TerraformingRate0.0012atm", table[2][0]);

            Assert.AreEqual("5000", table[0][1]);
            Assert.AreEqual("5000", table[1][1]);
            Assert.AreEqual("3000", table[2][1]);
        }
        public void ClicksButtonInWindowWithNegativeOffsets()
        {
            var screen       = Substitute.For <IScreen>();
            var windowFinder = Substitute.For <IWindowFinder>();
            var inputDevice  = Substitute.For <IInputDevice>();
            var ocr          = Substitute.For <IOCRReader>();
            var settings     = Substitute.For <ISettingsStore>();

            settings.HorizontalWindowOffset.Returns(-5);
            settings.VerticalWindowOffset.Returns(-5);
            var window = new PopulationAndProductionWindow(screen, windowFinder, inputDevice, ocr, settings);

            window.CreateIndustrialProject.Click();
            inputDevice.Received(1).Click(666, 737, Arg.Any <int>());
        }
        public void ClicksCheckBoxInWindowWithPositiveOffsets()
        {
            var screen = Substitute.For <IScreen>();

            screen.GetPixel(Arg.Any <int>(), Arg.Any <int>()).Returns(Color.White);
            var windowFinder = Substitute.For <IWindowFinder>();
            var inputDevice  = Substitute.For <IInputDevice>();
            var ocr          = Substitute.For <IOCRReader>();
            var settings     = Substitute.For <ISettingsStore>();

            settings.HorizontalWindowOffset.Returns(5);
            settings.VerticalWindowOffset.Returns(5);
            var window = new PopulationAndProductionWindow(screen, windowFinder, inputDevice, ocr, settings);

            window.MatchingScientistsOnly.Select();
            inputDevice.Received(1).Click(750, 372, Arg.Any <int>());
        }