public async Task WhenCollectionContainsMultipleTypes_AndSearchingByMultipleTypes_ThenMultipleTypesReturned()
        {
            //Arrange
            var logger = _factory.CreateLogger <GenericRepository <BaseTestObject> >();
            var repo   = new GenericRepository <BaseTestObject>(_client, logger, _cosmos, "BaseTest");

            var child1 = new ChildObject1()
            {
                SomeIntValue = 10
            };
            var child2 = new ChildObject2 {
                SomeStringProp = "testing String"
            };

            await repo.Upsert(child1);

            await repo.Upsert(child2);

            //Act
            var results = await repo.Get(x => 1 == 1, new SearchModel()); //return everything


            //Assert
            results.TotalResults.Should().BeGreaterOrEqualTo(2);
        }
        public async Task WhenMultipleTypesInOneCollection_AndRepoIsSpecificToOneType_ThenOtherTypesAreFiltered()
        {
            //Arrange
            var logger       = _factory.CreateLogger <GenericRepository <BaseTestObject> >();
            var repo         = new GenericRepository <BaseTestObject>(_client, logger, _cosmos, "BaseTest");
            var specificRepo = new GenericRepository <ChildObject1>(_client, _factory.CreateLogger <GenericRepository <ChildObject1> >(), _cosmos, "BaseTest");


            var child1 = new ChildObject1()
            {
                SomeIntValue = 10
            };
            var child2 = new ChildObject2 {
                SomeStringProp = "testing String"
            };

            await repo.Upsert(child1);

            await repo.Upsert(child2);

            //Act
            var results = await specificRepo.Get(x => 1 == 1, new SearchModel());


            //Assert
            results.TotalResults.Should().NotBe(0);
            results.Results.Where(x => x.ItemType.Contains("ChildObject2")).Should().BeEmpty();
        }
        public async Task WhenUsingBaseType_CanInsertMultipleTypes()
        {
            //Arrange
            var logger = _factory.CreateLogger <GenericRepository <BaseTestObject> >();
            var repo   = new GenericRepository <BaseTestObject>(_client, logger, _cosmos, "BaseTest");

            var child1 = new ChildObject1()
            {
                SomeIntValue = 10
            };
            var child2 = new ChildObject2 {
                SomeStringProp = "testing String"
            };


            //Act

            var id = await repo.Upsert(child1);

            var id2 = await repo.Upsert(child2);


            //Assert
            id.Should().NotBeEmpty();
            id2.Should().NotBeEmpty();
        }