Example #1
0
        private readonly IEnumerable <string> _appArguments; // Arguments that will be passed to the iOS application

        public AppTester(IMlaunchProcessManager processManager,
                         IHardwareDeviceLoader hardwareDeviceLoader,
                         ISimulatorLoader simulatorLoader,
                         ISimpleListenerFactory simpleListenerFactory,
                         ICrashSnapshotReporterFactory snapshotReporterFactory,
                         ICaptureLogFactory captureLogFactory,
                         IDeviceLogCapturerFactory deviceLogCapturerFactory,
                         ITestReporterFactory reporterFactory,
                         IResultParser resultParser,
                         IFileBackedLog mainLog,
                         ILogs logs,
                         IHelpers helpers,
                         IEnumerable <string> appArguments,
                         Action <string>?logCallback = null)
            : base(hardwareDeviceLoader, mainLog, logCallback)
        {
            _processManager           = processManager ?? throw new ArgumentNullException(nameof(processManager));
            _simulatorLoader          = simulatorLoader ?? throw new ArgumentNullException(nameof(simulatorLoader));
            _listenerFactory          = simpleListenerFactory ?? throw new ArgumentNullException(nameof(simpleListenerFactory));
            _snapshotReporterFactory  = snapshotReporterFactory ?? throw new ArgumentNullException(nameof(snapshotReporterFactory));
            _captureLogFactory        = captureLogFactory ?? throw new ArgumentNullException(nameof(captureLogFactory));
            _deviceLogCapturerFactory = deviceLogCapturerFactory ?? throw new ArgumentNullException(nameof(deviceLogCapturerFactory));
            _testReporterFactory      = reporterFactory ?? throw new ArgumentNullException(nameof(_testReporterFactory));
            _resultParser             = resultParser ?? throw new ArgumentNullException(nameof(resultParser));
            _logs         = logs ?? throw new ArgumentNullException(nameof(logs));
            _helpers      = helpers ?? throw new ArgumentNullException(nameof(helpers));
            _appArguments = appArguments;
        }
Example #2
0
 public AppRunner(IProcessManager processManager,
     IHardwareDeviceLoader hardwareDeviceLoader,
     ISimulatorLoader simulatorLoader,
     ISimpleListenerFactory simpleListenerFactory,
     ICrashSnapshotReporterFactory snapshotReporterFactory,
     ICaptureLogFactory captureLogFactory,
     IDeviceLogCapturerFactory deviceLogCapturerFactory,
     ITestReporterFactory reporterFactory,
     ILog mainLog,
     ILogs logs,
     IHelpers helpers,
     bool useXmlOutput)
 {
     _processManager = processManager ?? throw new ArgumentNullException(nameof(processManager));
     _hardwareDeviceLoader = hardwareDeviceLoader ?? throw new ArgumentNullException(nameof(hardwareDeviceLoader));
     _simulatorLoader = simulatorLoader ?? throw new ArgumentNullException(nameof(simulatorLoader));
     _listenerFactory = simpleListenerFactory ?? throw new ArgumentNullException(nameof(simpleListenerFactory));
     _snapshotReporterFactory = snapshotReporterFactory ?? throw new ArgumentNullException(nameof(snapshotReporterFactory));
     _captureLogFactory = captureLogFactory ?? throw new ArgumentNullException(nameof(captureLogFactory));
     _deviceLogCapturerFactory = deviceLogCapturerFactory ?? throw new ArgumentNullException(nameof(deviceLogCapturerFactory));
     _testReporterFactory = reporterFactory ?? throw new ArgumentNullException(nameof(_testReporterFactory));
     _mainLog = mainLog ?? throw new ArgumentNullException(nameof(mainLog));
     _logs = logs ?? throw new ArgumentNullException(nameof(logs));
     _helpers = helpers ?? throw new ArgumentNullException(nameof(helpers));
     _useXmlOutput = useXmlOutput;
 }
Example #3
0
 public AppRunner(IMLaunchProcessManager processManager,
                  IHardwareDeviceLoader hardwareDeviceLoader,
                  ISimulatorLoader simulatorLoader,
                  ISimpleListenerFactory simpleListenerFactory,
                  ICrashSnapshotReporterFactory snapshotReporterFactory,
                  ICaptureLogFactory captureLogFactory,
                  IDeviceLogCapturerFactory deviceLogCapturerFactory,
                  ITestReporterFactory reporterFactory,
                  IFileBackedLog mainLog,
                  ILogs logs,
                  IHelpers helpers,
                  bool useXmlOutput,
                  Action <string>?logCallback = null)
 {
     _processManager           = processManager ?? throw new ArgumentNullException(nameof(processManager));
     _hardwareDeviceLoader     = hardwareDeviceLoader ?? throw new ArgumentNullException(nameof(hardwareDeviceLoader));
     _simulatorLoader          = simulatorLoader ?? throw new ArgumentNullException(nameof(simulatorLoader));
     _listenerFactory          = simpleListenerFactory ?? throw new ArgumentNullException(nameof(simpleListenerFactory));
     _snapshotReporterFactory  = snapshotReporterFactory ?? throw new ArgumentNullException(nameof(snapshotReporterFactory));
     _captureLogFactory        = captureLogFactory ?? throw new ArgumentNullException(nameof(captureLogFactory));
     _deviceLogCapturerFactory = deviceLogCapturerFactory ?? throw new ArgumentNullException(nameof(deviceLogCapturerFactory));
     _testReporterFactory      = reporterFactory ?? throw new ArgumentNullException(nameof(_testReporterFactory));
     _logs         = logs ?? throw new ArgumentNullException(nameof(logs));
     _helpers      = helpers ?? throw new ArgumentNullException(nameof(helpers));
     _useXmlOutput = useXmlOutput;
     if (logCallback == null)
     {
         _mainLog = mainLog ?? throw new ArgumentNullException(nameof(mainLog));
     }
     else
     {
         // create using the main as the default log
         _mainLog = Log.CreateReadableAggregatedLog(mainLog, new CallbackLog(logCallback));
     }
 }
Example #4
0
 public AppTesterFactory(
     IMlaunchProcessManager processManager,
     ICrashSnapshotReporterFactory snapshotReporterFactory,
     ICaptureLogFactory captureLogFactory,
     IDeviceLogCapturerFactory deviceLogCapturerFactory,
     ITestReporterFactory reporterFactory,
     IResultParser resultParser,
     IHelpers helpers)
 {
     _processManager           = processManager ?? throw new ArgumentNullException(nameof(processManager));
     _snapshotReporterFactory  = snapshotReporterFactory ?? throw new ArgumentNullException(nameof(snapshotReporterFactory));
     _captureLogFactory        = captureLogFactory ?? throw new ArgumentNullException(nameof(captureLogFactory));
     _deviceLogCapturerFactory = deviceLogCapturerFactory ?? throw new ArgumentNullException(nameof(deviceLogCapturerFactory));
     _reporterFactory          = reporterFactory ?? throw new ArgumentNullException(nameof(reporterFactory));
     _resultParser             = resultParser ?? throw new ArgumentNullException(nameof(resultParser));
     _helpers = helpers ?? throw new ArgumentNullException(nameof(helpers));
 }
Example #5
0
    public AppTesterTests()
    {
        _listener = new Mock <ISimpleListener>();
        _listener
        .SetupGet(x => x.ConnectedTask)
        .Returns(Task.FromResult(true));

        _testReporter = new Mock <ITestReporter>();
        _testReporter
        .Setup(r => r.Success)
        .Returns(true);
        _testReporter
        .Setup(r => r.ParseResult())
        .ReturnsAsync((TestExecutingResult.Succeeded, "Tests run: 1194 Passed: 1191 Inconclusive: 0 Failed: 0 Ignored: 0"));
        _testReporter
        .Setup(x => x.CollectSimulatorResult(It.IsAny <ProcessExecutionResult>()))
        .Returns(Task.CompletedTask);

        _tunnelBore = new Mock <ITunnelBore>();
        _tunnelBore.Setup(t => t.Close(It.IsAny <string>()));

        _listenerFactory = new Mock <ISimpleListenerFactory>();
        _listenerFactory.SetReturnsDefault((ListenerTransport.Tcp, _listener.Object, "listener-temp-file"));
        _listenerFactory.Setup(f => f.TunnelBore).Returns(_tunnelBore.Object);
        _listener.Setup(x => x.InitializeAndGetPort()).Returns(Port);

        var factory2 = new Mock <ICrashSnapshotReporterFactory>();

        factory2.SetReturnsDefault(_snapshotReporter.Object);

        var factory3 = new Mock <ITestReporterFactory>();

        factory3.SetReturnsDefault(_testReporter.Object);
        _testReporterFactory = factory3.Object;

        Directory.CreateDirectory(s_outputPath);
    }
Example #6
0
        public AppRunnerTests()
        {
            _mainLog = new Mock <ILog>();

            _processManager = new Mock <IProcessManager>();
            _processManager.SetReturnsDefault(Task.FromResult(new ProcessExecutionResult()
            {
                ExitCode = 0
            }));

            _hardwareDeviceLoader = new Mock <IHardwareDeviceLoader>();
            _hardwareDeviceLoader
            .Setup(x => x.FindDevice(RunMode.iOS, _mainLog.Object, false, false))
            .ReturnsAsync(s_mockDevice);

            _simulatorLoader = new Mock <ISimulatorLoader>();
            _simulatorLoader
            .Setup(x => x.LoadDevices(It.IsAny <ILog>(), false, false, false))
            .Returns(Task.CompletedTask);

            _listener = new Mock <ISimpleListener>();
            _listener
            .SetupGet(x => x.ConnectedTask)
            .Returns(Task.CompletedTask);

            _snapshotReporter = new Mock <ICrashSnapshotReporter>();

            _testReporter = new Mock <ITestReporter>();
            _testReporter
            .Setup(r => r.Success)
            .Returns(true);
            _testReporter
            .Setup(r => r.ParseResult())
            .ReturnsAsync((TestExecutingResult.Succeeded, "Tests run: 1194 Passed: 1191 Inconclusive: 0 Failed: 0 Ignored: 0"));
            _testReporter
            .Setup(x => x.CollectSimulatorResult(It.IsAny <Task <ProcessExecutionResult> >()))
            .Returns(Task.CompletedTask);

            _logs = new Mock <ILogs>();
            _logs.SetupGet(x => x.Directory).Returns(Path.Combine(s_outputPath, "logs"));

            _tunnelBore = new Mock <ITunnelBore>();
            _tunnelBore.Setup(t => t.Close(It.IsAny <string>()));

            _listenerFactory = new Mock <ISimpleListenerFactory>();
            _listenerFactory.SetReturnsDefault((ListenerTransport.Tcp, _listener.Object, "listener-temp-file"));
            _listenerFactory.Setup(f => f.TunnelBore).Returns(_tunnelBore.Object);
            _listener.SetupGet(x => x.Port).Returns(1020);

            var factory2 = new Mock <ICrashSnapshotReporterFactory>();

            factory2.SetReturnsDefault(_snapshotReporter.Object);
            _snapshotReporterFactory = factory2.Object;

            var factory3 = new Mock <ITestReporterFactory>();

            factory3.SetReturnsDefault(_testReporter.Object);
            _testReporterFactory = factory3.Object;

            _helpers = new Mock <IHelpers>();
            _helpers
            .Setup(x => x.GetTerminalName(It.IsAny <int>()))
            .Returns("tty1");
            _helpers
            .Setup(x => x.GenerateStableGuid(It.IsAny <string>()))
            .Returns(Guid.NewGuid());
            _helpers
            .SetupGet(x => x.Timestamp)
            .Returns("mocked_timestamp");

            Directory.CreateDirectory(s_outputPath);
        }
Example #7
0
        public AppTesterTests()
        {
            _mainLog = new Mock <IFileBackedLog>();

            _processManager = new Mock <IMlaunchProcessManager>();
            _processManager.SetReturnsDefault(Task.FromResult(new ProcessExecutionResult()
            {
                ExitCode = 0
            }));

            _hardwareDeviceLoader = new Mock <IHardwareDeviceLoader>();
            _hardwareDeviceLoader
            .Setup(x => x.FindDevice(RunMode.iOS, _mainLog.Object, false, false))
            .ReturnsAsync(s_mockDevice);

            _simulatorLoader = new Mock <ISimulatorLoader>();

            _mockSimulator = new Mock <ISimulatorDevice>();
            _mockSimulator.SetupGet(x => x.Name).Returns(SimulatorDeviceName);
            _mockSimulator.SetupGet(x => x.UDID).Returns("58F21118E4D34FD69EAB7860BB9B38A0");
            _mockSimulator.SetupGet(x => x.LogPath).Returns(_simulatorLogPath);
            _mockSimulator.SetupGet(x => x.SystemLog).Returns(Path.Combine(_simulatorLogPath, "system.log"));

            _listener = new Mock <ISimpleListener>();
            _listener
            .SetupGet(x => x.ConnectedTask)
            .Returns(Task.FromResult(true));

            _snapshotReporter = new Mock <ICrashSnapshotReporter>();

            _testReporter = new Mock <ITestReporter>();
            _testReporter
            .Setup(r => r.Success)
            .Returns(true);
            _testReporter
            .Setup(r => r.ParseResult())
            .ReturnsAsync((TestExecutingResult.Succeeded, "Tests run: 1194 Passed: 1191 Inconclusive: 0 Failed: 0 Ignored: 0"));
            _testReporter
            .Setup(x => x.CollectSimulatorResult(It.IsAny <ProcessExecutionResult>()))
            .Returns(Task.CompletedTask);

            _logs = new Mock <ILogs>();
            _logs.SetupGet(x => x.Directory).Returns(Path.Combine(s_outputPath, "logs"));

            _tunnelBore = new Mock <ITunnelBore>();
            _tunnelBore.Setup(t => t.Close(It.IsAny <string>()));

            _listenerFactory = new Mock <ISimpleListenerFactory>();
            _listenerFactory.SetReturnsDefault((ListenerTransport.Tcp, _listener.Object, "listener-temp-file"));
            _listenerFactory.Setup(f => f.TunnelBore).Returns(_tunnelBore.Object);
            _listener.Setup(x => x.InitializeAndGetPort()).Returns(Port);

            var factory2 = new Mock <ICrashSnapshotReporterFactory>();

            factory2.SetReturnsDefault(_snapshotReporter.Object);
            _snapshotReporterFactory = factory2.Object;

            var factory3 = new Mock <ITestReporterFactory>();

            factory3.SetReturnsDefault(_testReporter.Object);
            _testReporterFactory = factory3.Object;

            _helpers = new Mock <IHelpers>();
            _helpers
            .Setup(x => x.GetTerminalName(It.IsAny <int>()))
            .Returns("tty1");
            _helpers
            .Setup(x => x.GenerateStableGuid(It.IsAny <string>()))
            .Returns(Guid.NewGuid());
            _helpers
            .SetupGet(x => x.Timestamp)
            .Returns("mocked_timestamp");
            _helpers
            .Setup(x => x.GetLocalIpAddresses())
            .Returns(new[] { IPAddress.Loopback, IPAddress.IPv6Loopback });

            Directory.CreateDirectory(s_outputPath);
        }