Exemple #1
0
        public async void CanGetLists()
        {
            DbContextOptions <ToDoNgDbContext> options = new DbContextOptionsBuilder <ToDoNgDbContext>()
                                                         .UseInMemoryDatabase(Guid.NewGuid().ToString())
                                                         .Options;

            using (ToDoNgDbContext context = new ToDoNgDbContext(options))
            {
                // Arrange
                await context.ToDoList.AddRangeAsync(
                    new ToDoList()
                {
                    Name = "Hello",
                },

                    new ToDoList()
                {
                    Name = "Goodbye",
                }
                    );

                await context.SaveChangesAsync();

                ToDoListController controller = new ToDoListController(context);

                // Act
                OkObjectResult   result = controller.GetAll() as OkObjectResult;
                DbSet <ToDoList> lists  = result.Value as DbSet <ToDoList>;

                // Assert
                Assert.Equal(2, await lists.CountAsync());
            }
        }
        public async void CanGetItems()
        {
            DbContextOptions <ToDoNgDbContext> options = new DbContextOptionsBuilder <ToDoNgDbContext>()
                                                         .UseInMemoryDatabase(Guid.NewGuid().ToString())
                                                         .Options;

            using (ToDoNgDbContext context = new ToDoNgDbContext(options))
            {
                // Arrange
                await context.ToDo.AddRangeAsync(
                    new ToDo()
                {
                    Message = "Hello",
                    IsDone  = true
                },

                    new ToDo()
                {
                    Message = "Goodbye",
                    IsDone  = false
                }
                    );

                await context.SaveChangesAsync();

                ToDoController controller = new ToDoController(context);

                // Act
                OkObjectResult result = controller.GetAll() as OkObjectResult;
                DbSet <ToDo>   items  = result.Value as DbSet <ToDo>;

                // Assert
                Assert.Equal(2, await items.CountAsync());
            }
        }
Exemple #3
0
        public async void CanPutList()
        {
            DbContextOptions <ToDoNgDbContext> options = new DbContextOptionsBuilder <ToDoNgDbContext>()
                                                         .UseInMemoryDatabase(Guid.NewGuid().ToString())
                                                         .Options;

            using (ToDoNgDbContext context = new ToDoNgDbContext(options))
            {
                // Arrange
                ToDoListController controller = new ToDoListController(context);

                CreatedAtActionResult result = await controller.Post(new ToDoList
                {
                    Name = "Hello, world!"
                }) as CreatedAtActionResult;

                ToDoList newList             = result.Value as ToDoList;
                int      newListId           = newList.Id;
                string   newListOriginalName = string.Copy(newList.Name);

                // Act
                await controller.Put(newListId, new ToDoList()
                {
                    Id   = newListId,
                    Name = "Goodbye!"
                });

                // Assert
                Assert.NotEqual(newListOriginalName,
                                (await context.ToDoList.FirstOrDefaultAsync(l => l.Id == newListId)).Name);
            }
        }
Exemple #4
0
        public async void CanDeleteList()
        {
            DbContextOptions <ToDoNgDbContext> options = new DbContextOptionsBuilder <ToDoNgDbContext>()
                                                         .UseInMemoryDatabase(Guid.NewGuid().ToString())
                                                         .Options;

            using (ToDoNgDbContext context = new ToDoNgDbContext(options))
            {
                // Arrange
                ToDoListController controller = new ToDoListController(context);

                CreatedAtActionResult postResult = await controller.Post(new ToDoList()
                {
                    Name = "Hello, world!"
                }) as CreatedAtActionResult;

                int afterPostCount = await context.ToDoList.CountAsync();

                // Act
                await controller.Delete((postResult.Value as ToDoList).Id);

                // Assert
                Assert.True(afterPostCount > (await context.ToDoList.CountAsync()));
            }
        }
        public async void CanDeleteItem()
        {
            DbContextOptions <ToDoNgDbContext> options = new DbContextOptionsBuilder <ToDoNgDbContext>()
                                                         .UseInMemoryDatabase(Guid.NewGuid().ToString())
                                                         .Options;

            using (ToDoNgDbContext context = new ToDoNgDbContext(options))
            {
                // Arrange
                ToDoController controller = new ToDoController(context);

                CreatedAtActionResult postResult = await controller.Post(new ToDo()
                {
                    Message = "Test Item",
                    IsDone  = false,
                    ListId  = null
                }) as CreatedAtActionResult;

                int afterPostCount = await context.ToDo.CountAsync();

                // Act
                await controller.Delete((postResult.Value as ToDo).Id);

                // Assert
                Assert.True(afterPostCount > (await context.ToDo.CountAsync()));
            }
        }
Exemple #6
0
        public async void CanPostList()
        {
            DbContextOptions <ToDoNgDbContext> options = new DbContextOptionsBuilder <ToDoNgDbContext>()
                                                         .UseInMemoryDatabase(Guid.NewGuid().ToString())
                                                         .Options;

            using (ToDoNgDbContext context = new ToDoNgDbContext(options))
            {
                // Arrange
                ToDoListController controller = new ToDoListController(context);
                int initialCount = await context.ToDoList.CountAsync();

                // Act
                await controller.Post(new ToDoList()
                {
                    Name = "Hello, world!"
                });

                // Assert
                Assert.True((await context.ToDoList.CountAsync()) > initialCount);
            }
        }
Exemple #7
0
        public async void CanGetListWithItems()
        {
            DbContextOptions <ToDoNgDbContext> options = new DbContextOptionsBuilder <ToDoNgDbContext>()
                                                         .UseInMemoryDatabase(Guid.NewGuid().ToString())
                                                         .Options;

            using (ToDoNgDbContext context = new ToDoNgDbContext(options))
            {
                // Arrange
                ToDoController     itemController = new ToDoController(context);
                ToDoListController listController = new ToDoListController(context);

                CreatedAtActionResult listResult = await listController.Post(new ToDoList()
                {
                    Name = "Foo"
                }) as CreatedAtActionResult;

                int listId = (listResult.Value as ToDoList).Id;

                CreatedAtActionResult itemResult = await itemController.Post(new ToDo()
                {
                    Message = "Hello, world!",
                    IsDone  = false,
                    ListId  = listId
                }) as CreatedAtActionResult;

                int itemId = (itemResult.Value as ToDo).Id;

                // Act
                OkObjectResult getResult = await listController.GetToDoList(listId) as OkObjectResult;

                PropertyInfo       itemsPropertyInfo = getResult.Value.GetType().GetProperty("items");
                IEnumerable <ToDo> associatedItems   = itemsPropertyInfo.GetValue(getResult.Value) as IEnumerable <ToDo>;

                // Assert
                Assert.Contains(associatedItems, i => i.Id == itemId);
            }
        }
        public async void CanGetItemWithList()
        {
            DbContextOptions <ToDoNgDbContext> options = new DbContextOptionsBuilder <ToDoNgDbContext>()
                                                         .UseInMemoryDatabase(Guid.NewGuid().ToString())
                                                         .Options;

            using (ToDoNgDbContext context = new ToDoNgDbContext(options))
            {
                // Arrange
                ToDoController     itemController = new ToDoController(context);
                ToDoListController listController = new ToDoListController(context);

                CreatedAtActionResult listResult = await listController.Post(new ToDoList()
                {
                    Name = "Foo"
                }) as CreatedAtActionResult;

                int listId = (listResult.Value as ToDoList).Id;

                CreatedAtActionResult itemResult = await itemController.Post(new ToDo()
                {
                    Message = "Hello, world!",
                    IsDone  = false,
                    ListId  = listId
                }) as CreatedAtActionResult;

                int itemId = (itemResult.Value as ToDo).Id;

                // Act
                OkObjectResult getResult = await itemController.GetToDo(itemId) as OkObjectResult;

                ToDoList associatedList = (getResult.Value as ToDo).List;

                // Assert
                Assert.Equal(listId, associatedList.Id);
            }
        }
        public async void CanPutItem()
        {
            DbContextOptions <ToDoNgDbContext> options = new DbContextOptionsBuilder <ToDoNgDbContext>()
                                                         .UseInMemoryDatabase(Guid.NewGuid().ToString())
                                                         .Options;

            using (ToDoNgDbContext context = new ToDoNgDbContext(options))
            {
                // Arrange
                ToDoController controller = new ToDoController(context);

                CreatedAtActionResult result = await controller.Post(new ToDo
                {
                    Message = "Hello, world",
                    IsDone  = false,
                    ListId  = null
                }) as CreatedAtActionResult;

                ToDo   newItem   = result.Value as ToDo;
                int    newItemId = newItem.Id;
                string newItemOriginalMessage = string.Copy(newItem.Message);

                // Act
                await controller.Put(newItemId, new ToDo()
                {
                    Id      = newItemId,
                    Message = "Goodbye!",
                    IsDone  = true,
                    ListId  = null
                });

                // Assert
                Assert.NotEqual(newItemOriginalMessage,
                                (await context.ToDo.FirstOrDefaultAsync(i => i.Id == newItemId)).Message);
            }
        }
        public async void CanPostItem()
        {
            DbContextOptions <ToDoNgDbContext> options = new DbContextOptionsBuilder <ToDoNgDbContext>()
                                                         .UseInMemoryDatabase(Guid.NewGuid().ToString())
                                                         .Options;

            using (ToDoNgDbContext context = new ToDoNgDbContext(options))
            {
                // Arrange
                ToDoController controller   = new ToDoController(context);
                int            initialCount = await context.ToDo.CountAsync();

                // Act
                await controller.Post(new ToDo()
                {
                    Message = "Test Item",
                    IsDone  = false,
                    ListId  = null
                });

                // Assert
                Assert.True((await context.ToDo.CountAsync()) > initialCount);
            }
        }
 public ToDoController(ToDoNgDbContext context)
 {
     _context = context;
 }