public async Task ShouldSavePolymorphicProperties()
{
using (var session = _store.CreateSession())
{
var drawing = new Drawing
{
Shapes = new Shape[]
{
new Square { Size = 10 },
new Square { Size = 20 },
new Circle { Radius = 5 }
}
};
session.Save(drawing);
}
using (var session = _store.CreateSession())
{
var drawing = await session.QueryAsync().For<Drawing>().FirstOrDefault();
Assert.NotNull(drawing);
Assert.Equal(3, drawing.Shapes.Count);
Assert.Equal(typeof(Square), drawing.Shapes[0].GetType());
Assert.Equal(typeof(Square), drawing.Shapes[1].GetType());
Assert.Equal(typeof(Circle), drawing.Shapes[2].GetType());
}
}