public void StoreEnumInheritedTypesSerializesCorrectlyForSpecialProduct() { using (var trn = Store.BeginTransaction()) { var originalSpecial = new SpecialProduct { Name = "Unicorn Dust", BonusMaterial = "Directors Commentary", Id = "UD-01", Price = 11.1m, }; var originalDud = new DodgyProduct { Id = "DO-01", Name = "Something", Price = 12.3m, Tax = 15m }; trn.Insert(originalSpecial); trn.Insert(originalDud); var allProducts = trn.Stream <(string Id, string Type, string JSON)>("select Id, Type, [JSON] from TestSchema.Product").ToList(); var special = allProducts.Single(p => p.Id == "UD-01"); special.Type.Should().Be("Special", "Type isn't serializing into column correctly"); special.JSON.Should().Be("{\"BonusMaterial\":\"Directors Commentary\",\"Price\":11.1}"); } }
public void StoreEnumInheritedTypesSerializesCorrectlyForSpecialProduct() { using (var trn = Store.BeginTransaction()) { var originalSpecial = new SpecialProduct() { Name = "Unicorn Dust", BonusMaterial = "Directors Commentary", Id = "UD-01", Price = 11.1m, }; var originalDud = new DodgyProduct() { Id = "DO-01", Name = "Something", Price = 12.3m, Tax = 15m }; trn.Insert <SpecialProduct>(originalSpecial); trn.Insert <DodgyProduct>(originalDud); var allProducts = trn.TableQuery <ProductToTestSerialization>().ToList(); var special = allProducts.Single(p => p.Id == "UD-01"); special.Type.Should().Be("Special", "Type isn't serializing into column correctly"); special.JSON.Should().Be("{\"Type\":1,\"Price\":11.1}"); } }
public void StoreAndLoadInheritedTypes() { using (var trn = Store.BeginTransaction()) { var originalSpecial = new SpecialProduct() { Name = "Unicorn Dust", BonusMaterial = "Directors Commentary", Id = "UD-01", Price = 11.1m, }; var originalDud = new DodgyProduct() { Id = "DO-01", Name = "Something", Price = 12.3m, Tax = 15m }; trn.Insert <SpecialProduct>(originalSpecial); trn.Insert <DodgyProduct>(originalDud); var allProducts = trn.TableQuery <Product>().ToList(); Assert.True(allProducts.Exists(p => p is SpecialProduct sp && sp.BonusMaterial == originalSpecial.BonusMaterial)); Assert.True(allProducts.Exists(p => p is DodgyProduct dp && dp.Tax == originalDud.Tax)); var onlySpecial = trn.TableQuery <SpecialProduct>().ToList(); Assert.Equal(1, onlySpecial.Count); Assert.Equal(originalSpecial.BonusMaterial, onlySpecial[0].BonusMaterial); } }
public void StoreAndLoadEnumInheritedTypes() { using (var trn = Store.BeginTransaction()) { var originalNormal = new Product { Name = "Norm", Id = "NL-01", Price = 15.5m }; var originalSpecial = new SpecialProduct { Name = "Unicorn Dust", BonusMaterial = "Directors Commentary", Id = "UD-01", Price = 11.1m }; var originalDud = new DodgyProduct { Id = "DO-01", Name = "Something", Price = 12.3m, Tax = 15m }; trn.Insert(originalNormal); trn.Insert <SpecialProduct>(originalSpecial); trn.Insert <DodgyProduct>(originalDud); var allProducts = trn.TableQuery <Product>().ToList(); Assert.True(allProducts.Exists(p => p is SpecialProduct sp && sp.BonusMaterial == originalSpecial.BonusMaterial), "Special product didn't load correctly"); Assert.True(allProducts.Exists(p => p is DodgyProduct dp && dp.Tax == originalDud.Tax), "Dodgy product didn't load correctly"); var onlySpecial = trn.TableQuery <SpecialProduct>().ToList(); onlySpecial.Count.Should().Be(1); onlySpecial[0].BonusMaterial.Should().Be(originalSpecial.BonusMaterial); } }