void ParseValueFailure(string paramName, bool launchRequest, Dictionary <string, Tuple <string, ConfigStatus.ErrorLevel> > invalidValues) { foreach (KeyValuePair <string, Tuple <string, ConfigStatus.ErrorLevel> > valuePair in invalidValues) { string paramValue = valuePair.Key; string messagePart = valuePair.Value.Item1; ConfigStatus.ErrorLevel expectedErrorLevel = valuePair.Value.Item2; var queryParams = new Dictionary <string, string> { { paramName, paramValue } }; LaunchGameRequest request = ShallowCopy(ValidRequest); LaunchParams parameters = ShallowCopy(ValidParams); ConfigStatus status = launchRequest ? _target.ParseToLaunchRequest(queryParams, request) : _target.ParseToParameters(queryParams, parameters); // Verify that corresponding message is populated. Assert.That(status.SeverityLevel, Is.EqualTo(expectedErrorLevel)); Assert.That(status.MessagesByErrorLevel(expectedErrorLevel).Count, Is.EqualTo(1)); Assert.That(status.AllMessages.Count, Is.EqualTo(1)); Assert.That(status.AllMessages[0].Contains(messagePart)); object obj = launchRequest ? (object)request : parameters; Type type = launchRequest ? typeof(LaunchGameRequest) : typeof(LaunchParams); object originObject = launchRequest ? (object)ValidRequest : ValidParams; // Assert that all properties are unchanged. AssertObjectPropertiesEqual(type, obj, originObject); } }
public void AppendErrorTest(ConfigStatus.ErrorLevel initialLevel) { var newLevel = ConfigStatus.ErrorLevel.Error; string initialMessage = "Message init"; string errorMessage = "Error message"; ConfigStatus status = StatusBySeverityLevel(initialLevel, initialMessage); status.AppendError(errorMessage); Assert.That(status.SeverityLevel, Is.EqualTo(newLevel)); Assert.That(status.IsOk, Is.EqualTo(false)); Assert.That(status.IsWarningLevel, Is.EqualTo(false)); Assert.That(status.IsErrorLevel, Is.EqualTo(true)); string[] errorMessages = GetMessagesForLevel(ConfigStatus.ErrorLevel.Error, new[] { initialLevel, ConfigStatus.ErrorLevel.Error }, new[] { initialMessage, errorMessage }); string[] warningMessages = GetMessagesForLevel(ConfigStatus.ErrorLevel.Warning, new[] { initialLevel, ConfigStatus.ErrorLevel.Error }, new[] { initialMessage, errorMessage }); Assert.That(status.AllMessages, Is.EquivalentTo(errorMessages.Concat(warningMessages))); Assert.That(status.ErrorMessages, Is.EquivalentTo(errorMessages)); Assert.That(status.MessagesByErrorLevel(ConfigStatus.ErrorLevel.Error), Is.EquivalentTo(errorMessages)); Assert.That(status.WarningMessages, Is.EquivalentTo(warningMessages)); Assert.That(status.MessagesByErrorLevel(ConfigStatus.ErrorLevel.Warning), Is.EquivalentTo(warningMessages)); Assert.That(status.MessagesByErrorLevel(ConfigStatus.ErrorLevel.Ok), Is.Null); }
public void AppendWarningTest(ConfigStatus.ErrorLevel initialLevel) { int initialLevelNum = Array.IndexOf(_sortedLevels, initialLevel); int warningNum = Array.IndexOf(_sortedLevels, ConfigStatus.ErrorLevel.Warning); int newLevelNum = Math.Max(initialLevelNum, warningNum); ConfigStatus.ErrorLevel newLevel = _sortedLevels[newLevelNum]; string initialMessage = "Message init"; string warningMessage = "Warning message"; ConfigStatus status = StatusBySeverityLevel(initialLevel, initialMessage); status.AppendWarning(warningMessage); Assert.That(status.SeverityLevel, Is.EqualTo(newLevel)); Assert.That(status.IsOk, Is.EqualTo(false)); Assert.That(status.IsWarningLevel, Is.EqualTo(newLevel == ConfigStatus.ErrorLevel.Warning)); Assert.That(status.IsErrorLevel, Is.EqualTo(newLevel == ConfigStatus.ErrorLevel.Error)); string[] errorMessages = GetMessagesForLevel(ConfigStatus.ErrorLevel.Error, new[] { initialLevel, ConfigStatus.ErrorLevel.Warning }, new[] { initialMessage, warningMessage }); string[] warningMessages = GetMessagesForLevel(ConfigStatus.ErrorLevel.Warning, new[] { initialLevel, ConfigStatus.ErrorLevel.Warning }, new[] { initialMessage, warningMessage }); Assert.That(status.AllMessages, Is.EquivalentTo(errorMessages.Concat(warningMessages))); Assert.That(status.ErrorMessages, Is.EquivalentTo(errorMessages)); Assert.That(status.MessagesByErrorLevel(ConfigStatus.ErrorLevel.Error), Is.EquivalentTo(errorMessages)); Assert.That(status.WarningMessages, Is.EquivalentTo(warningMessages)); Assert.That(status.MessagesByErrorLevel(ConfigStatus.ErrorLevel.Warning), Is.EquivalentTo(warningMessages)); Assert.That(status.MessagesByErrorLevel(ConfigStatus.ErrorLevel.Ok), Is.Null); }
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."); } }
string[] GetMessagesForLevel(ConfigStatus.ErrorLevel level, ConfigStatus.ErrorLevel[] levels, string[] messages) { if (level == ConfigStatus.ErrorLevel.Ok) { return(new string[0]); } var res = new List <string>(); for (var i = 0; i < levels.Length; ++i) { if (levels[i] == level) { res.Add(messages[i]); } } return(res.ToArray()); }
bool IsError(ConfigStatus.ErrorLevel level) => level == ConfigStatus.ErrorLevel.Error;
bool IsWarning(ConfigStatus.ErrorLevel level) => level == ConfigStatus.ErrorLevel.Warning;
bool IsOk(ConfigStatus.ErrorLevel level) => level == ConfigStatus.ErrorLevel.Ok;