コード例 #1
0
        public async void Menu_GetByTagIndexAsync_PositiveAndNegative_Test()
        {
            var options = new DbContextOptionsBuilder <DreamFoodDeliveryContext>()
                          .UseInMemoryDatabase(databaseName: "Menu_GetByTagIndexAsync_PositiveAndNegative_Test")
                          .Options;
            string tagTestName       = "new";
            string tagTestSecondName = "old";

            using (var context = new DreamFoodDeliveryContext(options))
            {
                TagDB[] tags = new TagDB[]
                {
                    new TagDB
                    {
                        TagName = tagTestName
                    },
                    new TagDB
                    {
                        TagName = tagTestSecondName
                    },
                };
                DishDB dish = new DishDB
                {
                    Name = "dish"
                };

                context.AddRange(tags);
                context.Add(dish);
                DishTagDB dishTag = new DishTagDB
                {
                    TagId  = tags.FirstOrDefault(x => x.TagName == tagTestName).Id,
                    DishId = dish.Id
                };
                context.Add(dishTag);

                await context.SaveChangesAsync();
            }

            using (var context = new DreamFoodDeliveryContext(options))
            {
                var service = new MenuService(_mapper, context);

                var resultPositive = await service.GetByTagIndexAsync(tagTestName);

                var resultNegative = await service.GetByTagIndexAsync(tagTestSecondName);

                resultPositive.IsSuccess.Should().BeTrue();
                resultNegative.IsSuccess.Should().BeFalse();
            }
        }
コード例 #2
0
        public async void Tags_GetAllTagsAsync_Test()
        {
            var options = new DbContextOptionsBuilder <DreamFoodDeliveryContext>()
                          .UseInMemoryDatabase(databaseName: "Tag_GetAllTagsAsync_Test")
                          .Options;

            // Run the test against one instance of the context
            using (var context = new DreamFoodDeliveryContext(options))
            {
                context.AddRange(_dishes);
                context.AddRange(_tags);
                DishTagDB dishTag = new DishTagDB
                {
                    TagId  = _tags.FirstOrDefault().Id,
                    DishId = _dishes.FirstOrDefault().Id,
                };
                context.Add(dishTag);
                await context.SaveChangesAsync();
            }

            // Use a separate instance of the context to verify correct data was saved to database
            using (var context = new DreamFoodDeliveryContext(options))
            {
                var service = new TagService(_mapper, context);

                var tagFromBase = await context.Tags.FirstOrDefaultAsync();

                var result = await service.GetAllTagsAsync();

                result.IsSuccess.Should().BeTrue();
                result.Data.Count().Should().Be(1);

                foreach (var item in result.Data)
                {
                    item.TagName.Should().Be(tagFromBase.TagName);
                }
            }
        }