public void Subclass_Adheres_To_Superclass_Fluent_Alias()
        {
            using (var mongo = Mongo.Create(TestHelper.ConnectionString()))
            {
                var obj1 = new SubClassedObjectFluentMapped { Title = "Prod1", ABool = true };
                var obj2 = new SubClassedObjectFluentMapped { Title = "Prod2", ABool = false };

                mongo.GetCollection<SubClassedObjectFluentMapped>("Fake").Save(obj1);
                mongo.GetCollection<SubClassedObjectFluentMapped>("Fake").Save(obj2);
                var found = mongo.GetCollection<SuperClassObjectFluentMapped>("Fake").Find();

                Assert.Equal(2, found.Count());
                Assert.Equal(obj1.Id, found.ElementAt(0).Id);
                Assert.Equal("Prod1", found.ElementAt(0).Title);
                Assert.Equal(obj2.Id, found.ElementAt(1).Id);
                Assert.Equal("Prod2", found.ElementAt(1).Title);

            }
        }
        public void Subclassed_Type_Is_Returned_When_Superclass_Is_Used_For_The_Collection()
        {
            using (var mongo = Mongo.Create(TestHelper.ConnectionString()))
            {
                var obj1 = new SubClassedObjectFluentMapped { Title = "Prod1", ABool = true };
                mongo.GetCollection<SubClassedObjectFluentMapped>("Fake").Save(obj1);
                var found = mongo.GetCollection<SuperClassObjectFluentMapped>("Fake").Find();

                Assert.Equal(1, found.Count());
                Assert.Equal(typeof(SubClassedObjectFluentMapped), found.ElementAt(0).GetType());
            }
        }