Beispiel #1
0
        public async Task ShutdownAsync()
        {
            IUserMessage response;
            EmbedBuilder initialBuilder;


            initialBuilder = EmbedHelper.GetDefaultEmbed(Context);
            initialBuilder.AddField(":video_game: Exiting game", "Please wait...");

            response = await ReplyAsync("", embed : initialBuilder.Build());

            try {
                EmbedBuilder    embed;
                ProcessProvider provider;


                provider = new ProcessProvider();
                embed    = EmbedHelper.GetDefaultEmbed(Context);
                embed.AddField(":robot: Stopping bot process", "Please wait...");

                _screenshotProvider.Stop();

                embed.AddField(":white_check_mark: Success", "The bot process has been stopped.");

                // Forcibly kill the GTA process.
                KillGTAProcess();

                embed.AddField("Process Killed", "The GTA 5 process is no longer running.");

                await response.ModifyAsync(msg => { msg.Embed = embed.Build(); msg.Content = ""; });
            } catch (Exception e) {
                await response.ModifyAsync(msg => msg = ErrorHandler.GetDefaultErrorMessageEmbed(e, msg, Context.Message));
            }
        }
Beispiel #2
0
        public async Task StartGameAsync()
        {
            IUserMessage response;
            EmbedBuilder initialBuilder;


            initialBuilder = EmbedHelper.GetDefaultEmbed(Context);
            initialBuilder.AddField(":video_game: Starting game", "Please wait...");

            response = await ReplyAsync("", embed : initialBuilder.Build());

            try {
                EmbedBuilder    embed;
                ProcessProvider provider;


                provider = new ProcessProvider();
                embed    = EmbedHelper.GetDefaultEmbed(Context);

                StartGTAProcess();

                embed.AddField("Game started", "The GTA 5 game has been started successfully.");

                await response.ModifyAsync(msg => { msg.Embed = embed.Build(); msg.Content = ""; });
            } catch (Exception e) {
                await response.ModifyAsync(msg => msg = ErrorHandler.GetDefaultErrorMessageEmbed(e, msg, Context.Message));
            }
        }
Beispiel #3
0
        public static void AssemblyInitialize(TestContext testContext)
        {
            string workingDir = Path.Combine(ProcessProvider.GetEntryProcessApplicationPath(), "Demos", "TestAPI");

            _testApiProcess = ProcessProvider.StartProcess("dotnet", workingDir, " run", true);
            ProcessProvider.WaitPortToGetBusy(55215);
        }
        public async Task FindNewSessionAsync()
        {
            IUserMessage response;
            EmbedBuilder initialBuilder;


            initialBuilder = EmbedHelper.GetDefaultEmbed(Context);
            initialBuilder.AddField(":mag: Finding new session", "Please wait...");

            response = await ReplyAsync("", embed : initialBuilder.Build());

            try {
                EmbedBuilder    embed;
                IntPtr          windowHandle;
                ProcessProvider provider;


                embed    = EmbedHelper.GetDefaultEmbed(Context);
                provider = new ProcessProvider();

                embed.AddField(":robot: Stopping bot process", "Please wait...");

                _screenshotProvider.Stop();

                embed.AddField(":white_check_mark: Success", "The bot process has been stopped.");
                embed.AddField(":mag: Finding new session", "Please wait...");

                await response.ModifyAsync(msg => { msg.Embed = embed.Build(); msg.Content = ""; });

                windowHandle = provider.GetGrandTheftAutoProcessPointer();

                User32.GetWindowThreadProcessId(windowHandle, out uint processID);

                if (processID != 0)
                {
                    Process process;


                    process = Process.GetProcessById((int)processID);

                    process.Suspend();
                    Thread.Sleep(8000);
                    process.Resume();
                }


                embed.AddField(":white_check_mark: Success", "A new session has been found.");
                embed.AddField(":robot: Starting bot script", "Please wait");

                await response.ModifyAsync(msg => { msg.Embed = embed.Build(); msg.Content = ""; });

                _screenshotProvider.Start();

                embed.AddField(":white_check_mark: Success", "Bot script started ");

                await response.ModifyAsync(msg => { msg.Embed = embed.Build(); msg.Content = ""; });
            } catch (Exception e) {
                await response.ModifyAsync(msg => msg = ErrorHandler.GetDefaultErrorMessageEmbed(e, msg, Context.Message));
            }
        }
Beispiel #5
0
        public static AttachableProcessInfo Create(ProcessProvider processProvider, AttachProgramOptions options)
        {
            if (processProvider == null)
            {
                throw new ArgumentNullException(nameof(processProvider));
            }
            if (options == null)
            {
                throw new ArgumentNullException(nameof(options));
            }
            var name         = options.Name;
            var title        = options.Title;
            var filename     = options.Filename;
            var commandLine  = options.CommandLine;
            var architecture = options.Architecture;

            if (name == null || title == null || filename == null || commandLine == null || architecture == null)
            {
                var info = GetDefaultProperties(processProvider, options);
                name         = name ?? info.name ?? string.Empty;
                title        = title ?? info.title ?? string.Empty;
                filename     = filename ?? info.filename ?? string.Empty;
                commandLine  = commandLine ?? info.commandLine ?? string.Empty;
                architecture = architecture ?? info.arch ?? string.Empty;
            }
            return(new AttachableProcessInfo(options.ProcessId, options.RuntimeId, options.RuntimeGuid, options.RuntimeKindGuid, options.RuntimeName, name, title, filename, commandLine, architecture));
        }
Beispiel #6
0
        public void ExecuteStandardOutputCallback_And_ErrorOutputCallback__When_StandardOutputAndErrorOutputAreReceived()
        {
            // Arrange
            var processProvider               = new ProcessProvider();
            var actualErrorOutputMessages     = new List <string>();
            var actualStartdardOutputMessages = new List <string>();

            // Act
            processProvider.StartProcessAndWaitToFinish(
                _pathToTestConsoleApp,
                null,
                "writeInfoError",
                10,
                message => actualStartdardOutputMessages.Add(message),
                message => actualErrorOutputMessages.Add(message));

            // Assert
            Assert.That(actualStartdardOutputMessages.Count, Is.EqualTo(3));
            Assert.That(actualStartdardOutputMessages[0], Is.EqualTo("write first line"));
            Assert.That(actualStartdardOutputMessages[1], Is.EqualTo("write second line"));

            Assert.That(actualStartdardOutputMessages.Count, Is.EqualTo(3));
            Assert.That(actualStartdardOutputMessages[0], Is.EqualTo("write first line"));
            Assert.That(actualStartdardOutputMessages[1], Is.EqualTo("write second line"));
        }
Beispiel #7
0
 public void AssemblyCleanUp()
 {
     if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
     {
         ProcessProvider.CloseProcess(_testApiProcess);
     }
 }
Beispiel #8
0
 private void LateUpdate()
 {
     OnLateUpdate(out bool shouldReturn);
     if (shouldReturn)
     {
         ProcessProvider.Return(this as T);
     }
 }
Beispiel #9
0
 public MonitoringProvider(ProcessProvider processProvider, IISProvider iisProvider,
                           HttpProvider httpProvider, ConfigFileProvider configFileProvider)
 {
     _processProvider    = processProvider;
     _iisProvider        = iisProvider;
     _httpProvider       = httpProvider;
     _configFileProvider = configFileProvider;
 }
Beispiel #10
0
 public SysTrayApp(ConfigFileProvider configFileProvider, ProcessProvider processProvider,
                   IISProvider iisProvider, EnvironmentProvider environmentProvider)
 {
     _configFileProvider  = configFileProvider;
     _processProvider     = processProvider;
     _iisProvider         = iisProvider;
     _environmentProvider = environmentProvider;
 }
        public void AllTestsAndProcessesHasAUniqueTestId()
        {
            IEnumerable <IArkadeTest> allArkadeTests = GetTests().Concat(ProcessProvider.GetAllProcesses());

            IEnumerable <TestId> testIds = allArkadeTests.Select(t => t.GetId());

            testIds.Should().OnlyHaveUniqueItems();
        }
Beispiel #12
0
 public AppRestartJob(EnvironmentProvider environmentProvider, ProcessProvider processProvider,
                      ServiceProvider serviceProvider, IISProvider iisProvider)
 {
     _environmentProvider = environmentProvider;
     _processProvider     = processProvider;
     _serviceProvider     = serviceProvider;
     _iisProvider         = iisProvider;
 }
Beispiel #13
0
 public SysTrayApp(ConfigFileProvider configFileProvider, ProcessProvider processProvider,
                   IISProvider iisProvider, EnvironmentProvider environmentProvider)
 {
     _configFileProvider = configFileProvider;
     _processProvider = processProvider;
     _iisProvider = iisProvider;
     _environmentProvider = environmentProvider;
 }
 public UpdateProvider(DiskProvider diskProvider, ServiceProvider serviceProvider,
                       ProcessProvider processProvider, EnvironmentProvider environmentProvider, IISProvider iisProvider)
 {
     _diskProvider        = diskProvider;
     _serviceProvider     = serviceProvider;
     _processProvider     = processProvider;
     _environmentProvider = environmentProvider;
     _iisProvider         = iisProvider;
 }
Beispiel #15
0
 public static void StopWinAppDriver()
 {
     if (_shouldStartLocalService)
     {
         if (ProcessProvider.IsProcessWithNameRunning("WinAppDriver"))
         {
             ProcessProvider.CloseProcess(_winAppDriverProcess);
         }
     }
 }
Beispiel #16
0
 public void AssemblyInitialize()
 {
     // TODO: Remove this code once you use your own web service! It is needed only to run the sample tests.
     if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
     {
         string workingDir = Path.Combine(ProcessProvider.GetEntryProcessApplicationPath(), "Demos", "TestAPI");
         _testApiProcess = ProcessProvider.StartProcess("dotnet", workingDir, " run", true);
         ProcessProvider.WaitPortToGetBusy(55215);
     }
 }
Beispiel #17
0
 public ProgramVM(ProcessProvider processProvider, AttachProgramOptions attachProgramOptions, IAttachToProcessContext context)
 {
     if (processProvider == null)
     {
         throw new ArgumentNullException(nameof(processProvider));
     }
     AttachProgramOptions  = attachProgramOptions ?? throw new ArgumentNullException(nameof(attachProgramOptions));
     attachableProcessInfo = AttachableProcessInfo.Create(processProvider, attachProgramOptions);
     Context = context ?? throw new ArgumentNullException(nameof(context));
 }
Beispiel #18
0
        private IEnumerator Enumerator()
        {
            yield return(Routine());

            if (AutoReturn)
            {
                bool success = ProcessProvider.Return(this as T);
                Debug.Log("Return successful = " + success);
            }
        }
Beispiel #19
0
        public void ReturnNotMinusOne_When_ProcessExitedWithError()
        {
            // Arrange
            var processProvider = new ProcessProvider();

            // Act
            var exitCode = processProvider.StartProcessAndWaitToFinish(_pathToTestConsoleApp, null, "exception", 0);

            // Assert
            Assert.That(exitCode, Is.EqualTo(-2));
        }
Beispiel #20
0
 public Router(ApplicationServer applicationServer, ServiceProvider serviceProvider,
               ConsoleProvider consoleProvider, EnvironmentProvider environmentProvider,
               ProcessProvider processProvider, SysTrayProvider sysTrayProvider)
 {
     _applicationServer   = applicationServer;
     _serviceProvider     = serviceProvider;
     _consoleProvider     = consoleProvider;
     _environmentProvider = environmentProvider;
     _processProvider     = processProvider;
     _sysTrayProvider     = sysTrayProvider;
 }
 public AppUpdateJob(UpdateProvider updateProvider, EnvironmentProvider environmentProvider, DiskProvider diskProvider,
                     HttpProvider httpProvider, ProcessProvider processProvider, ArchiveProvider archiveProvider, ConfigFileProvider configFileProvider)
 {
     _updateProvider      = updateProvider;
     _environmentProvider = environmentProvider;
     _diskProvider        = diskProvider;
     _httpProvider        = httpProvider;
     _processProvider     = processProvider;
     _archiveProvider     = archiveProvider;
     _configFileProvider  = configFileProvider;
 }
Beispiel #22
0
        public void ExitWithMinusOneExitCode_When_ProcessTimeouts()
        {
            // Arrange
            var processProvider = new ProcessProvider();

            // Act
            var exitCode = processProvider.StartProcessAndWaitToFinish(_pathToTestConsoleApp, null, "sleep", 0);

            // Assert
            Assert.That(exitCode, Is.EqualTo(-2));
        }
Beispiel #23
0
        public void ReturnZero_When_ProcessExitedCorrectly()
        {
            // Arrange
            var processProvider = new ProcessProvider();

            // Act
            var exitCode = processProvider.StartProcessAndWaitToFinish(_pathToTestConsoleApp, null, "exit", 300);

            // Assert
            Assert.That(exitCode, Is.EqualTo(0));
        }
        public void ReturnsCorrectProcess()
        {
            // Arrange
            var processProvider = new ProcessProvider();

            // Act
            var actualProcess   = processProvider.GetCurrentProcess();
            var expectedProcess = Process.GetCurrentProcess();

            // Assert
            Assert.That(actualProcess.ProcessName, Is.EqualTo(expectedProcess.ProcessName));
        }
Beispiel #25
0
        /// <summary>
        /// Starts the GTA process.
        /// </summary>
        private void StartGTAProcess()
        {
            Process         process;
            ProcessProvider provider;


            provider = new ProcessProvider();

            if (provider.GetGrandTheftAutoProcess() != null)
            {
                EventLogLogger.LogError("Unable to start the GTA V process as it is already running.");
                throw new ApplicationException("Unable to start the GTA V process as it is already running.");
            }

            if (_config.IsSteamGame)
            {
                string steamPath;


                steamPath = RegistryHelper.GetSteamPath();

                if (!string.IsNullOrEmpty(steamPath))
                {
                    process = new Process();
                    process.StartInfo.FileName  = $"{steamPath}\\Steam.exe";
                    process.StartInfo.Arguments = "-applaunch 271590 -StraightIntoFreemode";
                    process.Start();
                }
                else
                {
                    throw new ArgumentException("Unable to find the Steam installation path in the registry.");
                }
            }
            else
            {
                string installPath;


                installPath = RegistryHelper.GetGTASocialClubInstallPath();

                if (!string.IsNullOrEmpty(installPath))
                {
                    process = new Process();
                    process.StartInfo.FileName  = $"{installPath}\\PlayGTAV.exe";
                    process.StartInfo.Arguments = "-StraightIntoFreemode";
                    process.Start();
                }
                else
                {
                    throw new ArgumentException("Unable to find the PlayGTAV installation path in the registry.");
                }
            }
        }
        public void InstallAppInstalledFalse_When_AppIsUninstalled()
        {
            // Uninstalls the app with the specified app package.
            App.AppService.RemoveApp("com.example.android.apis");

            // Checks whether the app with the specified app package is installed.
            Assert.IsFalse(App.AppService.IsAppInstalled("com.example.android.apis"));

            string appPath = Path.Combine(ProcessProvider.GetExecutingAssemblyFolder(), "Demos\\ApiDemos.apk");

            // Installs the APK file on the device.
            App.AppService.InstallApp(appPath);
        }
Beispiel #27
0
        public void InstallAppInstalledFalse_When_AppIsUninstalled()
        {
            string appPath = Path.Combine(ProcessProvider.GetExecutingAssemblyFolder(), "Demos\\ApiDemos.apk");

            App.AppService.InstallApp(appPath);

            App.AppService.RemoveApp(Constants.AndroidNativeAppAppExamplePackage);

            Assert.IsFalse(App.AppService.IsAppInstalled(Constants.AndroidNativeAppAppExamplePackage));

            App.AppService.InstallApp(appPath);
            Assert.IsTrue(App.AppService.IsAppInstalled(Constants.AndroidNativeAppAppExamplePackage));
        }
Beispiel #28
0
        public void InstallAppInstalledFalse_When_AppIsUninstalled()
        {
            string appPath = Path.Combine(ProcessProvider.GetExecutingAssemblyFolder(), "Demos/TestApp.app.zip");

            // Installs the app file on the device.
            App.AppService.InstallApp(appPath);

            // Uninstalls the app with the specified bundleId. You can get your app's bundleId from XCode.
            App.AppService.RemoveApp("com.apple.mobilecal");

            Assert.IsFalse(App.AppService.IsAppInstalled("com.apple.mobilecal"));

            App.AppService.InstallApp(appPath);
        }
Beispiel #29
0
        public void ExecuteErrorOutputCallback_When_ErrorOutputIsReceived()
        {
            // Arrange
            var processProvider           = new ProcessProvider();
            var actualErrorOutputMessages = new List <string>();

            // Act
            processProvider.StartProcessAndWaitToFinish(_pathToTestConsoleApp, null, "writeError", 10, errorOutputCallback: message => { actualErrorOutputMessages.Add(message); });

            // Assert
            Assert.That(actualErrorOutputMessages.Count, Is.EqualTo(3));
            Assert.That(actualErrorOutputMessages[0], Is.EqualTo("write error first line"));
            Assert.That(actualErrorOutputMessages[1], Is.EqualTo("write error second line"));
        }
Beispiel #30
0
        public static ProgramVM?Create(ProcessProvider processProvider, AttachProgramOptions attachProgramOptions, IAttachToProcessContext context)
        {
            if (processProvider is null)
            {
                throw new ArgumentNullException(nameof(processProvider));
            }
            var attachableProcessInfo = AttachableProcessInfo.Create(processProvider, attachProgramOptions);

            if (attachableProcessInfo is null)
            {
                return(null);
            }
            return(new ProgramVM(attachableProcessInfo, attachProgramOptions, context));
        }
Beispiel #31
0
 public ApplicationServer(ConfigFileProvider configFileProvider, IISProvider iisProvider,
                          DebuggerProvider debuggerProvider, EnvironmentProvider environmentProvider,
                          ProcessProvider processProvider, MonitoringProvider monitoringProvider,
                          SecurityProvider securityProvider, DiskProvider diskProvider)
 {
     _configFileProvider  = configFileProvider;
     _iisProvider         = iisProvider;
     _debuggerProvider    = debuggerProvider;
     _environmentProvider = environmentProvider;
     _processProvider     = processProvider;
     _monitoringProvider  = monitoringProvider;
     _securityProvider    = securityProvider;
     _diskProvider        = diskProvider;
 }
 public void Setup()
 {
     Process.GetProcessesByName(DummyApp.DUMMY_PROCCESS_NAME).ToList().ForEach(c => c.Kill());
     _processProvider = new ProcessProvider();
 }