public async Task TestExtendedProperties() { const string indexName = "hello-users"; try { var store = new ElasticUserStore <HelloUser>(_connectionString, indexName, forceRecreate: true); await store.CreateAsync(new HelloUser { UserName = "******", Car = new Tesla { LicensePlate = "ABC123", Model = TeslaModel.ModelS } }); await store.CreateAsync(new HelloUser { UserName = "******", Car = new Koenigsegg { LicensePlate = "ABC123", Model = KoenigseggModel.One } }); var users = await store.GetAllAsync(); var teslaUser = users.FirstOrDefault(x => x.UserName == "abc123"); var koenigseggUser = users.FirstOrDefault(x => x.UserName == "def456"); Assert.That(teslaUser, Is.Not.Null, "No Telsa user found"); Assert.That(koenigseggUser, Is.Not.Null, "No Koenigsegg user found"); Assert.That(teslaUser.Car, Is.AssignableTo <Tesla>(), "Tesla Car is not Tesla"); Assert.That(koenigseggUser.Car, Is.AssignableTo <Koenigsegg>(), "Koenigsegg Car is not Koenigsegg"); } finally { Client.DeleteIndex(i => i.Index(indexName)); } }