public void TestDefaultContextParentWithACollectionOfThreeChildObjectsNested()
        {
            var testSkillParentObject = new SkillParentCollection
            {
                CreatedSkillParent = DateTime.UtcNow,
                UpdatedSkillParent = DateTime.UtcNow,
                DescriptionSkillParent = "A test entity description",
                Id = 8,
                NameSkillParent = "cool",
                SkillChildren = new Collection<SkillChild> { _entitiesForSkillChild[0], _entitiesForSkillChild[1], _entitiesForSkillChild[2] }
            };

            using (var context = new ElasticsearchContext(ConnectionString, _elasticsearchMappingResolver))
            {
                context.TraceProvider = new ConsoleTraceProvider();
                context.AddUpdateDocument(testSkillParentObject, testSkillParentObject.Id);

                // Save to Elasticsearch
                var ret = context.SaveChanges();
                Assert.AreEqual(ret.Status, HttpStatusCode.OK);

                var roundTripResult = context.GetDocument<SkillParentCollection>(testSkillParentObject.Id);
                Assert.AreEqual(roundTripResult.DescriptionSkillParent, testSkillParentObject.DescriptionSkillParent);
                Assert.AreEqual(roundTripResult.SkillChildren.First().DescriptionSkillChild, testSkillParentObject.SkillChildren.First().DescriptionSkillChild);
                Assert.AreEqual(roundTripResult.SkillChildren.ToList()[1].DescriptionSkillChild, testSkillParentObject.SkillChildren.ToList()[1].DescriptionSkillChild);
                Assert.AreEqual(roundTripResult.SkillChildren.ToList()[1].DescriptionSkillChild, testSkillParentObject.SkillChildren.ToList()[1].DescriptionSkillChild);
            }
        }
        public void TestDefaultContextParentWithNullCollectionNested()
        {
            using (var context = new ElasticsearchContext(ConnectionString, _elasticsearchMappingResolver))
            {
                context.TraceProvider = new ConsoleTraceProvider();
                var skill = new SkillParentCollection
                {
                    CreatedSkillParent = DateTime.UtcNow,
                    UpdatedSkillParent = DateTime.UtcNow,
                    Id = 34,
                    NameSkillParent = "rr",
                    DescriptionSkillParent = "ee"
                };
                context.AddUpdateDocument(skill, skill.Id);

                // Save to Elasticsearch
                var ret = context.SaveChanges();
                Assert.AreEqual(ret.Status, HttpStatusCode.OK);

                var roundTripResult = context.GetDocument<SkillParentCollection>(skill.Id);
                Assert.AreEqual(roundTripResult.DescriptionSkillParent, skill.DescriptionSkillParent);
            }
        }
        public void TestDefaultContextParentWithACollectionOfOneChildObjectNestedIgnoreChildren()
        {
            var testSkillParentObject = new SkillParentCollection
            {
                CreatedSkillParent = DateTime.UtcNow,
                UpdatedSkillParent = DateTime.UtcNow,
                DescriptionSkillParent = "A test entity description",
                Id = 7,
                NameSkillParent = "cool",
                SkillChildren = new Collection<SkillChild> { _entitiesForSkillChild[0] }
            };

            const bool includeChildObjects = false;
            using (var context = new ElasticsearchContext(ConnectionString, new ElasticsearchSerializerConfiguration(_elasticsearchMappingResolver, includeChildObjects)))
            {
                context.TraceProvider = new ConsoleTraceProvider();
                context.AddUpdateDocument(testSkillParentObject, testSkillParentObject.Id);

                // Save to Elasticsearch
                var ret = context.SaveChanges();
                Assert.AreEqual(ret.Status, HttpStatusCode.OK);

                var roundTripResult = context.GetDocument<SkillParentCollection>(testSkillParentObject.Id);
                Assert.AreEqual(roundTripResult.DescriptionSkillParent, testSkillParentObject.DescriptionSkillParent);
                Assert.AreEqual(roundTripResult.SkillChildren, null);
            }
        }