Esempio n. 1
0
        public static void AssertSimplTypesEqual(object left, object right, string message = "Issues with de/serialization! ")
        {
            var comparisonIssues = TestMethods.CompareOriginalObjectToDeserializedObject(left, right);

            if (comparisonIssues.Any())
            {
                Assert.Fail(message + " Errors were: \r\n" + String.Join("\r\n", comparisonIssues.Select(issue => issue.ToString())));
            }
        }
Esempio n. 2
0
        /// <summary>
        /// Helper methods to test de/serialization of and input object and simpl type scope in particular format
        /// </summary>
        /// <param name="originalObject">Original object</param>
        /// <param name="simplTypesScope">Type scope to attempt serialization and deserializaton</param>
        /// <param name="format">Format to de/serialize in</param>
        public static void TestSimplObject(Object originalObject, SimplTypesScope simplTypesScope, Format format)
        {
            Console.WriteLine("Serializing object " + originalObject);
            Console.WriteLine("-----------------------------------------------------------------------------");
            HelperStream originalStream = TestSerialization(originalObject, format);

            Console.WriteLine();
            Object deserializedObj = TestDeserialization(simplTypesScope, originalStream, format);

            TestMethods.AssertSimplTypesEqual(originalObject, deserializedObj);

            Console.WriteLine("Deserialized object " + deserializedObj);
            Console.WriteLine("-----------------------------------------------------------------------------");
            HelperStream deserializedReserializedStream = TestSerialization(deserializedObj, format);
        }
Esempio n. 3
0
        /// <summary>
        /// Prints a dictionary to a string
        /// </summary>
        /// <param name="dict">Dictionary to print</param>
        /// <returns>A string representation of the dictionary</returns>
        private string PrintDictionary(IDictionary dict)
        {
            StringBuilder sb = new StringBuilder("[");

            foreach (DictionaryEntry de in TestMethods.getOrderedEntries(dict))
            {
                // Preferred syntax: [ {key, value}, {key, value} ]

                sb.Append(String.Format("{{ {0} , ", de.Key.ToString()));
                sb.Append(PrintCollectionsOrObjects(de.Value));
                sb.Append("}}, ");
            }

            sb.Append("]");
            return(sb.ToString());
        }
Esempio n. 4
0
        /// <summary>
        /// Prints an object that could be an object, a collection or a map.
        /// </summary>
        /// <param name="obj">Object to print</param>
        /// <returns>string rep of the object. </returns>
        private string PrintCollectionsOrObjects(object obj)
        {
            if (obj is IDictionary)
            {
                return(PrintDictionary(obj as IDictionary));
            }

            if (obj is IList)
            {
                return(PrintList(obj as IList));
            }

            var simplValues = TestMethods.GetSimplValuesInObject(obj);

            if (simplValues.Any())
            {
                var sb = new StringBuilder();

                foreach (var kvp in simplValues)
                {
                    var valueString = kvp.Value.ToString();
                    if (kvp.Value is IDictionary)
                    {
                        valueString = PrintDictionary(kvp.Value as IDictionary);
                    }
                    if (kvp.Value is IList)
                    {
                        valueString = PrintList(kvp.Value as IList);
                    }

                    sb.AppendFormat("{0} = {1}\r\n", kvp.Key.Name, kvp.Value.ToString());
                }
                return(sb.ToString());
            }
            else
            {
                return(obj.ToString());
            }
        }