internal static string SerializeValueAssignmentDeclaration(string keyString, int indentation, int objectDepth, EFormatOption keyFormatOption)
 {
     return(new string('\t', indentation)
            + new string(SpecialCharacters.objectDepth, objectDepth) + " "
            + SpecialCharacters.FormatStringValue(keyString, keyFormatOption)
            + $" {SpecialCharacters.valueAssignment} ");
 }
        internal static string SerializeSingleValueType(SerializationInfo serializationInfo, EFormatOption valueFormatOption)
        {
            if (serializationInfo.dataInstance == null)
            {
                return(SpecialCharacters.FormatStringValue(null, valueFormatOption));
            }
            if (!serializationInfo.eDataType.IsSingleValueType())
            {
                throw new ArgumentOutOfRangeException("eDataType: " + serializationInfo.eDataType + " is not a single-value Type!");
            }
            string result = TypeDescriptor.GetConverter(serializationInfo.dataType).ConvertToInvariantString(serializationInfo.dataInstance);

            return(SpecialCharacters.FormatStringValue(result, valueFormatOption));
        }
Пример #3
0
        public void Test_Serialize_SpecialCharOptions()
        {
            const string normalString           = "asdf";
            string       specialCharacterString = "" + SpecialCharacters.objectDepth + SpecialCharacters.valueAssignment + SpecialCharacters.objectAssignment
                                                  + SpecialCharacters.nullChar + SpecialCharacters.stringChar + SpecialCharacters.escapeChar;

            ExampleNullableConfig exampleNullableConfig = new ExampleNullableConfig {
                stringValue  = normalString,
                stringValue2 = specialCharacterString,
                stringList   = new List <string> {
                    normalString, specialCharacterString
                },
                subClassList = new List <ExampleNullableConfig.ExampleNullableSubClass> {
                    new ExampleNullableConfig.ExampleNullableSubClass {
                        a = normalString
                    },
                    new ExampleNullableConfig.ExampleNullableSubClass {
                        a = specialCharacterString
                    }
                },
                stringDict = new Dictionary <string, string> {
                    { normalString, normalString },
                    { specialCharacterString, specialCharacterString }
                },
                subClassDict = new Dictionary <string, ExampleNullableConfig.ExampleNullableSubClass> {
                    { normalString, new ExampleNullableConfig.ExampleNullableSubClass {
                          a = normalString
                      } },
                    { specialCharacterString, new ExampleNullableConfig.ExampleNullableSubClass {
                          a = specialCharacterString
                      } }
                }
            };

            string[] ExpectedLines(EFormatOption keyOpt, EFormatOption valueOpt)
            {
                return(new[] {
                    $"- {SpecialCharacters.FormatStringValue("intValue", keyOpt)} = {SpecialCharacters.FormatStringValue("1", valueOpt)}",
                    $"- {SpecialCharacters.FormatStringValue("stringValue", keyOpt)} = {SpecialCharacters.FormatStringValue(normalString, valueOpt)}",
                    $"- {SpecialCharacters.FormatStringValue("stringValue2", keyOpt)} = {SpecialCharacters.FormatStringValue(specialCharacterString, valueOpt)}",
                    $"- {SpecialCharacters.FormatStringValue("intList", keyOpt)} :",
                    $"-- {SpecialCharacters.FormatStringValue("1", valueOpt)}",
                    $"-- {SpecialCharacters.FormatStringValue("1", valueOpt)}",
                    $"- {SpecialCharacters.FormatStringValue("stringList", keyOpt)} :",
                    $"-- {SpecialCharacters.FormatStringValue(normalString, valueOpt)}",
                    $"-- {SpecialCharacters.FormatStringValue(specialCharacterString, valueOpt)}",
                    $"- {SpecialCharacters.FormatStringValue("subClassList", keyOpt)} :",
                    "-- :",
                    $"--- {SpecialCharacters.FormatStringValue("a", keyOpt)} = {SpecialCharacters.FormatStringValue(normalString, valueOpt)}",
                    $"--- {SpecialCharacters.FormatStringValue("b", keyOpt)} = {SpecialCharacters.FormatStringValue("1", valueOpt)}",
                    "-- :",
                    $"--- {SpecialCharacters.FormatStringValue("a", keyOpt)} = {SpecialCharacters.FormatStringValue(specialCharacterString, valueOpt)}",
                    $"--- {SpecialCharacters.FormatStringValue("b", keyOpt)} = {SpecialCharacters.FormatStringValue("1", valueOpt)}",
                    $"- {SpecialCharacters.FormatStringValue("intDict", keyOpt)} :",
                    $"-- {SpecialCharacters.FormatStringValue("1", keyOpt)} = {SpecialCharacters.FormatStringValue("1", valueOpt)}",
                    $"-- {SpecialCharacters.FormatStringValue("2", keyOpt)} = {SpecialCharacters.FormatStringValue("2", valueOpt)}",
                    $"- {SpecialCharacters.FormatStringValue("stringDict", keyOpt)} :",
                    $"-- {SpecialCharacters.FormatStringValue(normalString, keyOpt)} = {SpecialCharacters.FormatStringValue(normalString, valueOpt)}",
                    $"-- {SpecialCharacters.FormatStringValue(specialCharacterString, keyOpt)} = {SpecialCharacters.FormatStringValue(specialCharacterString, valueOpt)}",
                    $"- {SpecialCharacters.FormatStringValue("subClassDict", keyOpt)} :",
                    $"-- {SpecialCharacters.FormatStringValue(normalString, keyOpt)} :",
                    $"--- {SpecialCharacters.FormatStringValue("a", keyOpt)} = {SpecialCharacters.FormatStringValue(normalString, valueOpt)}",
                    $"--- {SpecialCharacters.FormatStringValue("b", keyOpt)} = {SpecialCharacters.FormatStringValue("1", valueOpt)}",
                    $"-- {SpecialCharacters.FormatStringValue(specialCharacterString, keyOpt)} :",
                    $"--- {SpecialCharacters.FormatStringValue("a", keyOpt)} = {SpecialCharacters.FormatStringValue(specialCharacterString, valueOpt)}",
                    $"--- {SpecialCharacters.FormatStringValue("b", keyOpt)} = {SpecialCharacters.FormatStringValue("1", valueOpt)}",
                });
            }

            foreach (EFormatOption keyOpt in (EFormatOption[])Enum.GetValues(typeof(EFormatOption)))
            {
                foreach (EFormatOption valueOpt in (EFormatOption[])Enum.GetValues(typeof(EFormatOption)))
                {
                    string[] resultLines = new ConfigSerializer(
                        new ConfigOptions {
                        keyFormatOption   = keyOpt,
                        valueFormatOption = valueOpt
                    }).Serialize(exampleNullableConfig).ToArray();
                    Assert.AreEqual(ExpectedLines(keyOpt, valueOpt), resultLines, "keyOpt: {0}, valueOpt: {1}", keyOpt, valueOpt);
                }
            }
        }