Exemplo n.º 1
0
        public IEnumerable <IArmaProcess> CreateHeadlessClients(
            int port,
            IModset modset,
            IModsetConfig modsetConfig,
            int numberOfHeadlessClients = 1)
        {
            var parametersProvider = new HeadlessParametersProvider(
                port,
                modset,
                modsetConfig);

            for (var i = 0; i < numberOfHeadlessClients; i++)
            {
                yield return(new ArmaProcess(
                                 parametersProvider.GetStartupParams(_settings.ServerExecutable !),
                                 _serverProcessLogger));
            }
        }
Exemplo n.º 2
0
        public void GetStartupParams_AllParametersCorrect_AllParametersIncluded()
        {
            var hcProfileDirectory = _fixture.Create <string>();
            var serverCfgPath      = _fixture.Create <string>();
            var basicCfgPath       = _fixture.Create <string>();
            var port           = _fixture.Create <int>();
            var serverPassword = _fixture.Create <string>();

            var modset = ModsetHelpers.CreateTestModset(_fixture);
            var requiredAndServerModsDirectories = modset.ServerSideMods
                                                   .Concat(modset.RequiredMods)
                                                   .GetDirectories();

            var modsetConfigMock = new Mock <IModsetConfig>();

            modsetConfigMock.Setup(x => x.HCProfileDirectory).Returns(hcProfileDirectory);
            modsetConfigMock.Setup(x => x.ServerCfg).Returns(serverCfgPath);
            modsetConfigMock.Setup(x => x.BasicCfg).Returns(basicCfgPath);
            modsetConfigMock.Setup(x => x.ServerPassword).Returns(serverPassword);

            var parametersProvider = new HeadlessParametersProvider(
                port,
                modset,
                modsetConfigMock.Object);

            var startupParams = parametersProvider.GetStartupParams(string.Empty);

            startupParams.GetProcessStartInfo().Arguments.Should()
            .Contain("-client")
            .And.Subject.Should()
            .Contain("-connect=127.0.0.1")
            .And.Subject.Should()
            .Contain($"port={port}")
            .And.Subject.Should()
            .Contain($"-password={serverPassword}")
            .And.Subject.Should()
            .Contain($"-profiles=\"{hcProfileDirectory}\"")
            .And.Subject.Should()
            .Contain($"-mod={string.Join(";", requiredAndServerModsDirectories)}")
            .And.Subject.Should()
            .NotContain("-serverMod=");
        }