public void GetUserStocks_must_return_all_stocks_of_user_from_context() { var data = new List<UserStock> { new UserStock {ID = 0, Name = "DAX", User = Thread.CurrentPrincipal.Identity.GetUserName()}, new UserStock {ID = 1, Name = "NYSE", User = "******"}, new UserStock {ID = 1, Name = "NASDAQ", User = Thread.CurrentPrincipal.Identity.GetUserName()}, }.AsQueryable(); var mockSet = new Mock<DbSet<UserStock>>(); mockSet.As<IQueryable<UserStock>>().Setup(m => m.Provider).Returns(data.Provider); mockSet.As<IQueryable<UserStock>>().Setup(m => m.Expression).Returns(data.Expression); mockSet.As<IQueryable<UserStock>>().Setup(m => m.ElementType).Returns(data.ElementType); mockSet.As<IQueryable<UserStock>>().Setup(m => m.GetEnumerator()).Returns(data.GetEnumerator()); var mockContext = new Mock<IStockExchangeDbContext>(); mockContext.Setup(c => c.UserStocks).Returns(mockSet.Object); var service = new UserStocksController(mockContext.Object); var result = service.GetUserStocks(); Assert.AreEqual(2, result.Count()); Assert.AreEqual("DAX", result.Single(us => us.ID == 0).Name); Assert.AreEqual("NASDAQ", result.Single(us => us.ID == 1).Name); }
public async Task GetUserStock_with_id_must_return_stock_from_context() { var data = new List<UserStock> { new UserStock {ID = 0, Name = "DAX"}, new UserStock {ID = 1, Name = "NYSE"} }.AsQueryable(); var mockSet = new Mock<DbSet<UserStock>>(); mockSet.Setup(m => m.FindAsync(It.IsAny<object[]>())).Returns<object[]>((key) => Task.FromResult(data.SingleOrDefault(us => us.ID == (int)key[0]))); var mockContext = new Mock<IStockExchangeDbContext>(); mockContext.Setup(c => c.UserStocks).Returns(mockSet.Object); var service = new UserStocksController(mockContext.Object); var result = await service.GetUserStock(0); Assert.IsInstanceOfType(result, typeof(OkNegotiatedContentResult<UserStock>)); var conResult = result as OkNegotiatedContentResult<UserStock>; Assert.IsNotNull(conResult); Assert.AreEqual(data.Single(us => us.ID == 0), conResult.Content); }
public async Task PutUserStock_must_update_userstock_in_context() { var mockSet = new Mock<DbSet<UserStock>>(); mockSet.Setup(m => m.FindAsync(0)) .Returns(Task.FromResult(new UserStock {ID = 0, Name = "DAX", User = "******"})); var mockContext = new Mock<IStockExchangeDbContext>(); mockContext.Setup(m => m.UserStocks).Returns(mockSet.Object); var service = new UserStocksController(mockContext.Object); var result = await service.PutUserStock(0, new UserStock { ID = 0, Name = "DAX", User = "******" }); var statusCodeResult = result as StatusCodeResult; Assert.IsNotNull(statusCodeResult); Assert.AreEqual(HttpStatusCode.NoContent, statusCodeResult.StatusCode); mockContext.Verify(m => m.MarkAsModified(It.IsAny<UserStock>()), Times.Once()); mockContext.Verify(m => m.SaveChangesAsync(), Times.Once()); }
public async Task DeleteUserStock_must_return_Notound_when_count_not_found_userstock_with_provided_id() { var data = new List<UserStock> { new UserStock {ID = 0, Name = "DAX"}, new UserStock {ID = 1, Name = "NYSE"} }.AsQueryable(); var mockSet = new Mock<DbSet<UserStock>>(); mockSet.Setup(m => m.FindAsync(It.IsAny<object[]>())).Returns<object[]>((key) => Task.FromResult(data.SingleOrDefault(us => us.ID == (int)key[0]))); var mockContext = new Mock<IStockExchangeDbContext>(); mockContext.Setup(m => m.UserStocks).Returns(mockSet.Object); var service = new UserStocksController(mockContext.Object); var result = await service.DeleteUserStock(3); Assert.IsInstanceOfType(result, typeof(NotFoundResult)); }
public async Task DeleteUserStock_must_remove_userstock_from_set() { var data = new List<UserStock> { new UserStock {ID = 0, Name = "DAX", User = @"ALIS-PC\Ali"}, new UserStock {ID = 1, Name = "NYSE", User = @"ALIS-PC\Ali"} }.AsQueryable(); var mockSet = new Mock<DbSet<UserStock>>(); mockSet.Setup(m => m.FindAsync(It.IsAny<object[]>())).Returns<object[]>((key) => Task.FromResult(data.SingleOrDefault(us => us.ID == (int)key[0]))); var mockContext = new Mock<IStockExchangeDbContext>(); mockContext.Setup(m => m.UserStocks).Returns(mockSet.Object); var service = new UserStocksController(mockContext.Object); var result = await service.DeleteUserStock(0); Assert.IsInstanceOfType(result, typeof(OkNegotiatedContentResult<UserStock>)); mockSet.Verify(m => m.Remove(It.IsAny<UserStock>()), Times.Once()); mockContext.Verify(m => m.SaveChangesAsync(), Times.Once()); }
public async Task PostUserAsync_must_add_userstock_in_context_dbset() { var mockSet = new Mock<DbSet<UserStock>>(); var mockContext = new Mock<IStockExchangeDbContext>(); mockContext.Setup(m => m.UserStocks).Returns(mockSet.Object); var service = new UserStocksController(mockContext.Object); var result = await service.PostUserStock(new UserStockDto() { Name = "DAX"}); var createdResult = result as CreatedAtRouteNegotiatedContentResult<UserStock>; Assert.IsNotNull(createdResult); mockSet.Verify(m => m.Add(It.IsAny<UserStock>()), Times.Once()); mockContext.Verify(m => m.SaveChangesAsync(), Times.Once()); }
public async Task PutUserStock_must_return_NotFound_when_userstock_does_not_exist_in_dbset() { var data = new List<UserStock>().AsQueryable(); var mockSet = new Mock<DbSet<UserStock>>(); mockSet.As<IQueryable<UserStock>>().Setup(m => m.Provider).Returns(data.Provider); mockSet.As<IQueryable<UserStock>>().Setup(m => m.Expression).Returns(data.Expression); mockSet.As<IQueryable<UserStock>>().Setup(m => m.ElementType).Returns(data.ElementType); mockSet.As<IQueryable<UserStock>>().Setup(m => m.GetEnumerator()).Returns(data.GetEnumerator()); var mockContext = new Mock<IStockExchangeDbContext>(); mockContext.Setup(m => m.UserStocks).Returns(mockSet.Object); mockContext.Setup(m => m.SaveChangesAsync()).Throws(new DbUpdateConcurrencyException()); var service = new UserStocksController(mockContext.Object); var result = await service.PutUserStock(0, new UserStock { ID = 0, Name = "DAX", User = "******" }); var notFoundResult = result as NotFoundResult; Assert.IsNotNull(notFoundResult); }