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()); } }
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); } }
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())); } }
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); } }
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; }