private static IDictionary <string, IPatternParameter> MapToParameters(IList <TestParamInfo> parameters) { Dictionary <string, IPatternParameter> resultSet = new Dictionary <string, IPatternParameter>(); for (int i = -1; ++i != parameters.Count;) { TestParamInfo param = parameters[i]; AbstractPatternParameter patternParameter = new PatternParameterFactory().CreatePatternParameter(param.Name, param.Type); patternParameter.SetValue(param.Value); resultSet.Add(param.Name, patternParameter); } return(resultSet); }
/// <summary> /// Processes the given <paramref name="token"/> in the case of a parameter token. /// </summary> /// <param name="token">Token to process</param> /// <param name="instructionInfo">Instruction info to extend</param> private void CreateParameterToken(string token, InstructionTranslationInfo instructionInfo) { if (!token.EndsWith("}")) { throw new InvalidInstructionTranslationPatternException(string.Format("Directive pattern token does not finish with '}}'. Token is '{0}'", token)); } string tokenCore = token.Substring(1, token.Length - 2); string[] parameterParts = tokenCore.Split(','); if (parameterParts.Length < 2) { throw new InvalidInstructionTranslationPatternException(string.Format("Directive pattern token does not match expected token structure. Token is '{0}'", token)); } Dictionary <string, string> valueSet = new Dictionary <string, string>(); for (int i = -1; ++i != parameterParts.Length;) { string parameterPart = parameterParts[i]; string[] keyValueSet = parameterPart.Split(':'); if (keyValueSet.Length != 2) { throw new InvalidInstructionTranslationPatternException(string.Format("Directive pattern parameter token does not declare values in 'key:value' format!. Token is '{0}'", token)); } string key = keyValueSet[0]; string value = keyValueSet[1]; valueSet.Add(key, value); } IPatternParameter patternParameter = new PatternParameterFactory().CreatePatternParameter(valueSet); instructionInfo.AddToken(new ParameterToken { Value = patternParameter }); }