Ejemplo n.º 1
0
        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}");
            }
        }
Ejemplo n.º 2
0
        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}");
            }
        }
Ejemplo n.º 3
0
        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);
            }
        }
Ejemplo n.º 4
0
        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);
            }
        }