Exemplo n.º 1
0
        public void GetProducts_PriceActive_PriceRecordsNotDeletetAndIsUsed_ReturnsAllProduct()
        {
            var priceId = Guid.NewGuid();

            var price1 = new Price
            {
                Id           = priceId,
                IsActive     = true,
                Name         = "Test Price 1",
                Sheet        = "Test Sheet 1",
                Namerange    = "Test NameRange 1",
                Pricerange   = "",
                PriceRecords = new[] {
                    new PriceRecord {
                        RecordIndex = 1,
                        Used        = true,
                        Deleted     = false,
                        Links       = new[] {
                            new Link {
                                Id      = Guid.NewGuid(),
                                Product = new Product {
                                    Id   = Guid.NewGuid(),
                                    Name = "Product 1"
                                }
                            },
                            new Link {
                                Id      = Guid.NewGuid(),
                                Product = new Product {
                                    Id   = Guid.NewGuid(),
                                    Name = "Product 2"
                                }
                            },
                        }
                    },
                    new PriceRecord {
                        RecordIndex = 2,
                        Used        = true,
                        Deleted     = false,
                        Links       = new[] {
                            new Link {
                                Id      = Guid.NewGuid(),
                                Product = new Product {
                                    Id   = Guid.NewGuid(),
                                    Name = "Product 3"
                                }
                            },
                            new Link {
                                Id      = Guid.NewGuid(),
                                Product = new Product {
                                    Id   = Guid.NewGuid(),
                                    Name = "Product 4"
                                }
                            },
                        }
                    },
                    new PriceRecord {
                        RecordIndex = 3,
                        Used        = false,
                        Deleted     = false,
                        Links       = new[] {
                            new Link {
                                Id      = Guid.NewGuid(),
                                Product = new Product {
                                    Id   = Guid.NewGuid(),
                                    Name = "Product 5"
                                }
                            },
                            new Link {
                                Id      = Guid.NewGuid(),
                                Product = new Product {
                                    Id   = Guid.NewGuid(),
                                    Name = "Product 6"
                                }
                            },
                        }
                    },
                    new PriceRecord {
                        RecordIndex = 4,
                        Used        = true,
                        Deleted     = true,
                        Links       = new[] {
                            new Link {
                                Id      = Guid.NewGuid(),
                                Product = new Product {
                                    Id   = Guid.NewGuid(),
                                    Name = "Product 7"
                                }
                            },
                            new Link {
                                Id      = Guid.NewGuid(),
                                Product = new Product {
                                    Id   = Guid.NewGuid(),
                                    Name = "Product 8"
                                }
                            },
                        }
                    }
                }
            };

            var price2 = new Price
            {
                Id           = Guid.NewGuid(),
                IsActive     = true,
                Name         = "Test Price 2",
                Sheet        = "Test Sheet 2",
                Namerange    = "Test NameRange 2",
                Pricerange   = "",
                PriceRecords = new[] {
                    new PriceRecord {
                        RecordIndex = 5,
                        Used        = true,
                        Deleted     = false,
                        Links       = new[] {
                            new Link {
                                Id      = Guid.NewGuid(),
                                Product = new Product {
                                    Id   = Guid.NewGuid(),
                                    Name = "Product 9"
                                }
                            },
                            new Link {
                                Id      = Guid.NewGuid(),
                                Product = new Product {
                                    Id   = Guid.NewGuid(),
                                    Name = "Product 10"
                                }
                            },
                        }
                    },
                }
            };

            var options = GetOptions();

            using (var context = new TestDbContext(options))
            {
                context.Add(price1);
                context.Add(price2);
                context.SaveChanges();
            }

            using (var context = new TestDbContext(options))
            {
                var products = context.GetProducts(priceId).ToArray();
                Assert.That(products.Length, Is.EqualTo(4));
            }
        }