示例#1
0
        public void CreateLaunchSdkWarningSetting(ShowOption sdkShowOption, string[] versionsToHide,
                                                  bool showSdkWarning)
        {
            SetupSdkCompatibility(GameletSdkCompatibilityResult.NotCompatibleOutsideOfRange);
            var launchRequest = new LaunchGameRequest();

            SetupParamsParser(launchRequest, ConfigStatus.OkStatus());
            var launchGameResponse = new LaunchGameResponse
            {
                GameLaunchName = _gameLaunchName, RequestId = launchRequest.RequestId
            };

            SetupGameLaunchApi(launchRequest, launchGameResponse);
            _yetiVsiService.Options.SdkCompatibilityWarningOption.Returns(sdkShowOption);
            _yetiVsiService.Options
            .SdkVersionsAreHidden(Arg.Any <string>(), Arg.Any <string>(), Arg.Any <string>())
            .Returns(false);
            foreach (string versions in versionsToHide)
            {
                string gameletVersion = versions.Split('/')[0];
                string localVersion   = versions.Split('/')[1];
                _yetiVsiService.Options
                .SdkVersionsAreHidden(gameletVersion, localVersion, _gameletName).Returns(true);
            }

            IVsiGameLaunch result = _target.CreateLaunch(_launchParams);

            Assert.That(result, Is.Not.Null);
            _dialogUtil.DidNotReceiveWithAnyArgs().ShowError(default);
        public void Setup()
        {
            _sdkConfigFactory = Substitute.For <ISdkConfigFactory>();
            _sdkConfigFactory.LoadGgpSdkConfigOrDefault().Returns(_sdkConfig);
            _queryParametersParser = Substitute.For <IQueryParametersParser>();
            IDictionary <string, string> dict = new Dictionary <string, string>();

            _queryParametersParser
            .GetFinalQueryString(dict, out string _)
            .Returns(x =>
            {
                x[1] = string.Empty;
                return(ConfigStatus.OkStatus());
            });
            _queryParametersParser
            .ParametersToDictionary(Arg.Any <string>(), out IDictionary <string, string> _)
            .Returns(x =>
            {
                x[1] = dict;
                return(ConfigStatus.OkStatus());
            });
            _queryParametersParser.ParseToLaunchRequest(dict, Arg.Any <LaunchGameRequest>())
            .Returns(ConfigStatus.OkStatus());
            _queryParametersParser
            .ParseToParameters(dict, Arg.Any <LaunchParams>())
            .Returns(ConfigStatus.OkStatus());
            _target = new LaunchGameParamsConverter(_sdkConfigFactory, _queryParametersParser);
        }
        public void CreateOkStatusTest()
        {
            ConfigStatus status = ConfigStatus.OkStatus();

            Assert.That(status.IsOk, Is.EqualTo(true));
            Assert.That(status.IsWarningLevel, Is.EqualTo(false));
            Assert.That(status.IsErrorLevel, Is.EqualTo(false));
            Assert.That(status.AllMessages, Is.Empty);
            Assert.That(status.ErrorMessages, Is.Empty);
            Assert.That(status.WarningMessages, Is.Empty);
            Assert.That(status.WarningMessage, Is.Empty);
            Assert.That(status.SeverityLevel, Is.EqualTo(ConfigStatus.ErrorLevel.Ok));
            Assert.That(status.MessagesByErrorLevel(ConfigStatus.ErrorLevel.Ok), Is.Null);
            Assert.That(status.MessagesByErrorLevel(ConfigStatus.ErrorLevel.Warning), Is.Empty);
            Assert.That(status.MessagesByErrorLevel(ConfigStatus.ErrorLevel.Error), Is.Empty);
        }
示例#4
0
        ConfigStatus TryParseQueryString(string queryString, out IEnumerable <QueryParam> outParams)
        {
            if (string.IsNullOrEmpty(queryString))
            {
                outParams = Enumerable.Empty <QueryParam>();
                return(ConfigStatus.OkStatus());
            }

            try
            {
                NameValueCollection nameValueCollection;
                try
                {
                    // May throw an exception when maximum number of keys is exceeded.
                    nameValueCollection = HttpUtility.ParseQueryString(queryString);
                }
                catch (Exception e)
                {
                    throw new ApplicationException(e.Message);
                }

                var queryParams = new List <QueryParam>();
                foreach (string key in nameValueCollection.AllKeys)
                {
                    if (string.IsNullOrWhiteSpace(key))
                    {
                        throw new ApplicationException("Parameter 'Key' can not be empty.");
                    }

                    queryParams.Add(
                        new QueryParam()
                    {
                        Name = key, Value = nameValueCollection.Get(key)
                    });
                }

                LogQueryString(queryString, queryParams);
                outParams = queryParams;
                return(ConfigStatus.OkStatus());
            }
            catch (ApplicationException e)
            {
                Trace.TraceWarning($"Error happened while parsing query string. {e.Message}");
                outParams = null;
                return(ConfigStatus.WarningStatus(ErrorStrings.QueryParametersWrongFormat));
            }
        }
        ConfigStatus StatusBySeverityLevel(ConfigStatus.ErrorLevel level, string message)
        {
            switch (level)
            {
            case ConfigStatus.ErrorLevel.Ok:
                return(ConfigStatus.OkStatus());

            case ConfigStatus.ErrorLevel.Warning:
                return(ConfigStatus.WarningStatus(message));

            case ConfigStatus.ErrorLevel.Error:
                return(ConfigStatus.ErrorStatus(message));

            default:
                throw new ArgumentOutOfRangeException(nameof(level), level,
                                                      "Unsupported error level value received.");
            }
        }