public void MultipleLayerClass_Test()
        {
            var typeMapping = new TypeMapping <Multiple1LayerClass>();
            var mappings1   = new KeyValuePair <Expression <Func <Multiple1LayerClass, object> >, FieldTypes>(ic => ic.Obj, FieldTypes.Object);
            var mappings2   = new KeyValuePair <Expression <Func <Multiple1LayerClass, object> >, FieldTypes>(ic => ic.Nested, FieldTypes.Nested);

            typeMapping.AddMapping(mappings1, mappings2);

            typeMapping.AddNestedMapping(mlc => mlc.Nested,
                                         new KeyValuePair <Expression <Func <Multiple2LayerClass, object> >, FieldTypes>(ml2 => ml2.Word, FieldTypes.Keyword),
                                         new KeyValuePair <Expression <Func <Multiple2LayerClass, object> >, FieldTypes>(ml2 => ml2.Value, FieldTypes.Double),
                                         new KeyValuePair <Expression <Func <Multiple2LayerClass, object> >, FieldTypes>(ml2 => ml2.DateTime, FieldTypes.Date));

            typeMapping.AddObjectMapping(mlc => mlc.Obj,
                                         new KeyValuePair <Expression <Func <Multiple2LayerClass, object> >, FieldTypes>(ml2 => ml2.Word, FieldTypes.Keyword),
                                         new KeyValuePair <Expression <Func <Multiple2LayerClass, object> >, FieldTypes>(ml2 => ml2.Value, FieldTypes.Double),
                                         new KeyValuePair <Expression <Func <Multiple2LayerClass, object> >, FieldTypes>(ml2 => ml2.DateTime, FieldTypes.Date));

            var mlTm = typeof(Multiple1LayerClass).GetTypeMapping <Multiple1LayerClass>();


            var json1 = JsonConvert.SerializeObject(new { mappings = typeMapping });
            var json2 = JsonConvert.SerializeObject(new { mappings = mlTm });

            Assert.AreEqual(json1, json2);
        }