Пример #1
0
        private void ConstructorTest()
        {
            var model = new SimpleRandomizerList()
            {
                Name = "Beers"
            };
            var vm = new RandomizerListVM(model);

            vm.Should().NotBeNull();
        }
Пример #2
0
        public async void AddItemsToNewListWithUnitOfWork()
        {
            using var factory = new TestContextFactory();
            var context    = factory.CreateContext();
            var unitOfWork = new EFUnitOfWork(context);

            // ensure is a new database
            await context.Database.EnsureDeletedAsync();

            // ensure the database has been created
            await context.Database.EnsureCreatedAsync();

            // new list
            RandomizerList l = new SimpleRandomizerList {
                Name = "More Beers"
            };

            // the items to add
            var chouffe = new TextRandomizerItem("Chouffe", l);
            var goudale = new TextRandomizerItem("Goudale", l);
            var leffe   = new TextRandomizerItem("Leffe", l);

            // adding the items
            l.AddItem(chouffe);
            l.AddItem(goudale);
            l.AddItem(leffe);

            // adding the list
            l = await unitOfWork.Repository <RandomizerList>().Add(l);

            l.Should().NotBeNull();

            // item count should still be three
            l.Items.Count.Should().Be(3);

            // saving changes
            await unitOfWork.SaveChangesAsync();

            // total lists saved should now be 4
            (await unitOfWork.Repository <RandomizerList>().GetItems(0, 10)).Count().Should().Be(4);

            // recovering the list in three different ways
            var moreBeers  = (await unitOfWork.Repository <RandomizerList>().Get(l.Id));
            var moreBeers2 = (await unitOfWork.Repository <RandomizerList>().Set.Include(l => l.Items).Where(i => i.Id == l.Id).FirstOrDefaultAsync());
            var moreBeers3 = await unitOfWork.Repository <SimpleRandomizerList>().Set.Include(l => l.Items).Where(i => i.Id == l.Id).FirstOrDefaultAsync();

            // should return the same list with three items
            moreBeers.Items.Count().Should().Be(3);
            moreBeers2.Items.Count().Should().Be(3);
            moreBeers3.Items.Count().Should().Be(3);
        }
Пример #3
0
        private async void AddItemTest(RandomizerItemVM item)
        {
            var model = new SimpleRandomizerList()
            {
                Name = "Beers"
            };
            var vm = new RandomizerListVM(model);

            vm.ItemsVM.Should().BeEmpty();
            await vm.AddItemCommand.ExecuteAsync(item);

            vm.ItemsVM.Should().NotBeEmpty();
            vm.ItemsVM.Should().OnlyContain((containedItem) => item.Equals(containedItem));
        }
        public Task <RandomizerList> Add(RandomizerList item)
        {
            if (Get(item.Id).Result != null)
            {
                return(Task.FromResult <RandomizerList>(null));
            }
            RandomizerList inserted = new SimpleRandomizerList()
            {
                Id = item.Id, Name = item.Name
            };

            idCounter++;
            Items.Add(inserted);
            return(Task.FromResult(inserted));
        }
        public IEnumerator <object[]> GetEnumerator()
        {
            var model = new SimpleRandomizerList()
            {
                Name = "Stuff"
            };

            model.AddItem(new TextRandomizerItem()
            {
                Name = "My Stuff 1"
            });

            yield return(new object[] {
                new RandomizerListVM(model)
            });
        }
Пример #6
0
        public async void AddTest()
        {
            using var factory    = new TestContextFactory();
            using var context    = factory.CreateContext();
            using var unitOfWork = new EFUnitOfWork(context);
            context.Database.EnsureCreated();

            RandomizerList l = new SimpleRandomizerList {
                Name = "My list"
            };

            l = await unitOfWork.Repository <RandomizerList>().Add(l);

            l.Should().NotBeNull();
            await unitOfWork.SaveChangesAsync();

            (await unitOfWork.Repository <RandomizerList>().GetItems(0, 10)).Count().Should().Be(4);
        }
Пример #7
0
        private async void RemoveItemTest(RandomizerItemVM item)
        {
            var model = new SimpleRandomizerList()
            {
                Name = "Beers"
            };
            var vm = new RandomizerListVM(model);

            vm.ItemsVM.Should().BeEmpty();

            await vm.AddItemCommand.ExecuteAsync(item);

            vm.ItemsVM.Should().NotBeEmpty();

            await vm.RemoveItemCommand.ExecuteAsync(item);

            vm.ItemsVM.Should().BeEmpty();
        }
Пример #8
0
        private async void UpdateItemTest(TextRandomizerItemVM item)
        {
            var model = new SimpleRandomizerList()
            {
                Name = "Beers"
            };
            var vm = new RandomizerListVM(model);

            vm.ItemsVM.Should().BeEmpty();

            await vm.AddItemCommand.ExecuteAsync(item);

            vm.ItemsVM.Should().NotBeEmpty();

            item.Name = "Petrus Red";
            await vm.UpdateItemCommand.ExecuteAsync(item);

            vm.ItemsVM.Should().OnlyContain(i => i.Equals(item));
        }
Пример #9
0
        public async void AddRangeTest()
        {
            using var factory    = new TestContextFactory();
            using var context    = factory.CreateContext();
            using var unitOfWork = new EFUnitOfWork(context);
            context.Database.EnsureCreated();

            RandomizerList l = new SimpleRandomizerList {
                Name = "Ma liste incroyable",
            };
            RandomizerList l2 = new SimpleRandomizerList {
                Name = "My list"
            };
            RandomizerList l3 = new SimpleRandomizerList {
                Name = "Mi lista genial"
            };

            var result = await unitOfWork.Repository <RandomizerList>().AddRange(l, l2, l3);

            result.Should().BeTrue();
            await unitOfWork.SaveChangesAsync();

            (await unitOfWork.Repository <RandomizerList>().GetItems(0, 10)).Count().Should().Be(6);
        }
Пример #10
0
        public async void AddItemsToNewListWithoutUnitOfWork()
        {
            using (var factory = new TestContextFactory())
            {
                await using (var context = factory.CreateContext())
                {
                    // ensure is a new database
                    await context.Database.EnsureDeletedAsync();

                    // ensure the database has been created
                    await context.Database.EnsureCreatedAsync();
                }

                // Create new list
                RandomizerList l = new SimpleRandomizerList {
                    Name = "More Beers"
                };

                // the items to add
                var chouffe = new TextRandomizerItem("Chouffe", l);
                var goudale = new TextRandomizerItem("Goudale", l);
                var leffe   = new TextRandomizerItem("Leffe", l);

                // adding the items
                l.AddItem(chouffe);
                l.AddItem(goudale);
                l.AddItem(leffe);

                // list should now have 3 items
                l.Items.Count().Should().Be(3);

                await using (var context = factory.CreateContext())
                {
                    // adding the list to the RandomizerList set
                    l = context.Set <RandomizerList>().Add(l).Entity;
                    l.Should().NotBeNull();

                    // the three items should still be there
                    l.Items.Count.Should().Be(3);

                    // saving changes
                    await context.SaveChangesAsync();
                }

                await using (var context = factory.CreateContext())
                {
                    // the number of total lists in DB should now be three
                    (context.Set <RandomizerList>().Take(10)).Count().Should().Be(4);

                    // recovering the list in four different ways
                    var moreBeers  = context.Set <RandomizerList>().Find(l.Id);
                    var moreBeers2 = context.Set <SimpleRandomizerList>().Include(l => l.Items).Where(i => i.Id == l.Id).FirstOrDefault();
                    var moreBeers3 = context.Set <RandomizerList>().Include(l => l.Items).ToList().Where(l => l.Id == moreBeers.Id).FirstOrDefault();
                    var moreBeers4 = context.Lists.Include(list => list.Items).ToList().FirstOrDefault(l => l.Id == moreBeers.Id);


                    // should return the same list with three items
                    moreBeers.Items.Count().Should().Be(3);
                    moreBeers2.Items.Count().Should().Be(3);
                    moreBeers3.Items.Count().Should().Be(3);
                    moreBeers4.Items.Count().Should().Be(3);
                }
            }
        }