Example #1
0
        public void SaveMatchTest()
        {
            var articleData = new List<article>{
                new article{
                    id = 1,
                    title = new List<title>{
                        new title{
                            title1 = "Samsung Galaxy S5",
                            id = 1,
                            title_synonym = new List<title_synonym>{
                                new title_synonym{
                                    title = "Galaxy S5",
                                    title_id = 1,
                                    occurrences = 5
                                }
                            },
                            country = new country{
                                id = 1,
                                name = "Nederland",
                                extension = "nl"
                            },
                            article_id = 1,
                            country_id = 1
                        }
                    },
                    brand = "Samsung",
                    ean = new List<ean> {
                        new ean {
                            ean1 = "0000000000"
                        },
                        new ean {
                            ean1 = "0000000001"
                        }
                    },
                    sku = new List<sku> {
                        new sku {
                            sku1 = "1111111111"
                        },
                        new sku {
                            sku1 = "1111111110"
                        }
                    }
                }
            }.AsQueryable();

            var titleData = new List<title>
            {
                new title
                {
                            title1 = "Samsung Galaxy S5",
                            id = 1,
                            title_synonym = new List<title_synonym>{
                                new title_synonym{
                                    title = "Galaxy S5",
                                    title_id = 1,
                                    occurrences = 1,
                                }
                            },
                            country = new country{
                                id = 1,
                                name = "Nederland",
                                extension = "nl"
                            },
                            article_id = 1

                }
            }.AsQueryable();

            var titleSynonymData = new List<title_synonym>
            {
                new title_synonym
                {
                                    title = "Galaxy S5",
                                    title_id = 1,
                                    occurrences = 1
                }
            }.AsQueryable();

            var skuData = new List<sku>{}.AsQueryable();

            var articleMockSet = new Mock<DbSet<article>>();
            articleMockSet.As<IQueryable<article>>().Setup(m => m.Provider).Returns(articleData.Provider);
            articleMockSet.As<IQueryable<article>>().Setup(m => m.Expression).Returns(articleData.Expression);
            articleMockSet.As<IQueryable<article>>().Setup(m => m.ElementType).Returns(articleData.ElementType);
            articleMockSet.As<IQueryable<article>>().Setup(m => m.GetEnumerator()).Returns(articleData.GetEnumerator());

            var titleMockSet = new Mock<DbSet<title>>();
            titleMockSet.As<IQueryable<title>>().Setup(m => m.Provider).Returns(titleData.Provider);
            titleMockSet.As<IQueryable<title>>().Setup(m => m.Expression).Returns(titleData.Expression);
            titleMockSet.As<IQueryable<title>>().Setup(m => m.ElementType).Returns(titleData.ElementType);
            titleMockSet.As<IQueryable<title>>().Setup(m => m.GetEnumerator()).Returns(titleData.GetEnumerator());

            var titleSynMockSet = new Mock<DbSet<title_synonym>>();
            titleSynMockSet.As<IQueryable<title_synonym>>().Setup(m => m.Provider).Returns(titleSynonymData.Provider);
            titleSynMockSet.As<IQueryable<title_synonym>>().Setup(m => m.Expression).Returns(titleSynonymData.Expression);
            titleSynMockSet.As<IQueryable<title_synonym>>().Setup(m => m.ElementType).Returns(titleSynonymData.ElementType);
            titleSynMockSet.As<IQueryable<title_synonym>>().Setup(m => m.GetEnumerator()).Returns(titleSynonymData.GetEnumerator());

            var skuMockSet = new Mock<DbSet<sku>>();
            skuMockSet.As<IQueryable<sku>>().Setup(m => m.Provider).Returns(skuData.Provider);
            skuMockSet.As<IQueryable<sku>>().Setup(m => m.Expression).Returns(skuData.Expression);
            skuMockSet.As<IQueryable<sku>>().Setup(m => m.ElementType).Returns(skuData.ElementType);
            skuMockSet.As<IQueryable<sku>>().Setup(m => m.GetEnumerator()).Returns(skuData.GetEnumerator());

            var mockContext = new Mock<BetsyEntities>();
            mockContext.Setup(c => c.article).Returns(articleMockSet.Object);
            mockContext.Setup(c => c.title).Returns(titleMockSet.Object);
            mockContext.Setup(c => c.title_synonym).Returns(titleSynMockSet.Object);
            mockContext.Setup(c => c.sku).Returns(skuMockSet.Object);

            var service = new BetsyService(mockContext.Object);
            service.SaveMatch(new Product { Title = "Galaxy S5", EAN = "0000000000", SKU = "1010101010" }, 1, 1);

            mockContext.Verify(m => m.SaveChanges(), Times.AtMost(2));
        }