示例#1
0
        public void ComplexDataTypesTestNoIndent()
        {
            ComplexDataTypes data = ComplexDataTypes.GenerateRandomValues(null, false);

            var truth = JsonConvert.SerializeObject(data, Formatting.None);

            NUnit.Framework.Assert.AreEqual(truth, JSON.ToJson(data, false));
            var test = JSON.FromJson <ComplexDataTypes>(truth);

            test.Should().BeEquivalentTo(data);
        }
        public static ComplexDataTypes GenerateRandomValues(ComplexDataTypes parent = null, bool generateLoop = true)
        {
            ComplexDataTypes value = new ComplexDataTypes();
            var random             = new Random(0);

            value.BoolField    = random.NextDouble() > 0.5 ? true : false;
            value.ByteField    = (byte)random.Next();
            value.CharField    = (char)random.Next();
            value.ShortField   = (short)random.Next();
            value.UshortField  = (ushort)random.Next();
            value.IntField     = random.Next();
            value.UintField    = (uint)random.Next();
            value.FloatField   = (float)random.NextDouble();
            value.DoubleField  = random.NextDouble();
            value.LongField    = (long)random.Next();
            value.UlongField   = (ulong)random.Next();
            value.DecimalField = (decimal)random.NextDouble();
            value.SbyteField   = (sbyte)random.Next();

            value.StringField = RandomStringGenerator.RandomString(8);

            value.UnknownTypeField = new object();

            if (generateLoop)
            {
                value.ParentField = parent;
            }
            value.ChildField = parent == null?GenerateRandomValues(value, generateLoop) : null;

            if (parent == null)
            {
                value.ListTypeField = new List <ComplexDataTypes>();
                for (int i = 0; i < 3; i++)
                {
                    value.ListTypeField.Add(GenerateRandomValues(value, generateLoop));
                }
            }
            value.ListStringField = new List <string>();
            for (int i = 0; i < 3; i++)
            {
                value.ListStringField.Add(RandomStringGenerator.RandomString(8));
            }
            value.ListIntField = new List <int>();
            for (int i = 0; i < 3; i++)
            {
                value.ListIntField.Add(random.Next());
            }

            return(value);
        }