public ResResultModel ExportOrderMake(OrderMakeModel model) { try { return(ResResult.Response(true, MC.M_Save_Ok, "")); } catch (Exception ex) { return(ResResult.Response(false, ex.Message, "")); } }
public void InvokeAddMethodOnOrders_WhenCourierFoundAndUsernameExists() { // Arrange var mockContext = new Mock <IOnlineStoreContext>(); var usersMock = new List <User> { new User { Username = "******" } }.GetQueryableMockDbSet(); var couriersMock = new List <Courier> { new Courier { FirstName = "Peshko", LastName = "Peshkov" } }.GetQueryableMockDbSet(); var ordersMock = new List <Order> { new Order() }.GetQueryableMockDbSet(); var productsMock = new List <Product> { new Product { Name = "Testproduct", Quantity = 5 } }.GetQueryableMockDbSet(); var orderProductsMock = new List <OrderProduct> { new OrderProduct() }.GetQueryableMockDbSet(); IDictionary <string, int> productsCounts = new Dictionary <string, int>(); productsCounts.Add("Testproduct", 2); var mockDateTimeProvider = new MockDateTimeProvider(); mockContext.Setup(x => x.Users).Returns(usersMock.Object); mockContext.Setup(x => x.Couriers).Returns(couriersMock.Object); mockContext.Setup(s => s.Orders).Returns(ordersMock.Object); mockContext.Setup(s => s.Products).Returns(productsMock.Object); mockContext.Setup(s => s.OrderProducts).Returns(orderProductsMock.Object); var service = new Logic.Services.OrderService(mockContext.Object); var orderToMake = new OrderMakeModel { Username = "******", OrderedOn = mockDateTimeProvider.Now, Comment = "Tralala", ProductNameAndCounts = productsCounts }; // Act service.MakeOrder(orderToMake); //Assert ordersMock.Verify(v => v.Add(It.IsNotNull <Order>()), Times.Once); }
public void ReduceTheAvailableProductQuantity_WhenOrderIsFinished() { // Arrange var mockContext = new Mock <IOnlineStoreContext>(); var usersMock = new List <User> { new User { Username = "******" } }.GetQueryableMockDbSet(); var couriersMock = new List <Courier> { new Courier { FirstName = "Peshko", LastName = "Peshkov" } }.GetQueryableMockDbSet(); var ordersMock = new List <Order> { new Order() }.GetQueryableMockDbSet(); var productsMock = new List <Product> { new Product { Name = "Testproduct", Quantity = 5 } }.GetQueryableMockDbSet(); var orderProductsMock = new List <OrderProduct> { new OrderProduct() }.GetQueryableMockDbSet(); IDictionary <string, int> productsCounts = new Dictionary <string, int>(); productsCounts.Add("Testproduct", 2); var mockDateTimeProvider = new MockDateTimeProvider(); mockContext.Setup(x => x.Users).Returns(usersMock.Object); mockContext.Setup(x => x.Couriers).Returns(couriersMock.Object); mockContext.Setup(s => s.Orders).Returns(ordersMock.Object); mockContext.Setup(s => s.Products).Returns(productsMock.Object); mockContext.Setup(s => s.OrderProducts).Returns(orderProductsMock.Object); var service = new Logic.Services.OrderService(mockContext.Object); var orderToMake = new OrderMakeModel { Username = "******", OrderedOn = mockDateTimeProvider.Now, Comment = "Tralala", ProductNameAndCounts = productsCounts }; // Act service.MakeOrder(orderToMake); //Assert Assert.AreEqual(3, mockContext.Object.Products.FirstOrDefault(f => f.Name == "Testproduct").Quantity); }
public void ThrowArgumentException_WhenQuantityIsNotEnough() { // Arrange var mockContext = new Mock <IOnlineStoreContext>(); var usersMock = new List <User> { new User { Username = "******" } }.GetQueryableMockDbSet(); var couriersMock = new List <Courier> { new Courier { FirstName = "Peshko", LastName = "Peshkov" } }.GetQueryableMockDbSet(); var ordersMock = new List <Order> { new Order() }.GetQueryableMockDbSet(); var productsMock = new List <Product> { new Product { Name = "Testproduct", Quantity = 5 } }.GetQueryableMockDbSet(); var orderProductsMock = new List <OrderProduct> { new OrderProduct() }.GetQueryableMockDbSet(); IDictionary <string, int> productsCounts = new Dictionary <string, int>(); productsCounts.Add("Testproduct", 7); var mockDateTimeProvider = new MockDateTimeProvider(); mockContext.Setup(x => x.Users).Returns(usersMock.Object); mockContext.Setup(x => x.Couriers).Returns(couriersMock.Object); mockContext.Setup(s => s.Orders).Returns(ordersMock.Object); mockContext.Setup(s => s.Products).Returns(productsMock.Object); mockContext.Setup(s => s.OrderProducts).Returns(orderProductsMock.Object); var service = new Logic.Services.OrderService(mockContext.Object); var orderToMake = new OrderMakeModel { Username = "******", OrderedOn = mockDateTimeProvider.Now, Comment = "Tralala", ProductNameAndCounts = productsCounts }; //Act && Assert Assert.ThrowsException <ArgumentException>(() => service.MakeOrder(orderToMake)); }
public void ThrowArgumentException_WhenUserNotFound() { // Arrange var mockContext = new Mock <IOnlineStoreContext>(); var usersMock = new List <User>().GetQueryableMockDbSet(); mockContext.Setup(x => x.Users).Returns(usersMock.Object); var service = new Logic.Services.OrderService(mockContext.Object); var orderToMake = new OrderMakeModel { Username = "******" }; // Act & Assert Assert.ThrowsException <ArgumentException>(() => service.MakeOrder(orderToMake)); }
public ResResultModel GetOrderMakeList(OrderMakeModel model) { try { if (model.PageIndex < 1) { model.PageIndex = 1; } if (model.PageSize < 1) { model.PageSize = 10; } int totalRecord = 0; var bll = new OrderMake(); StringBuilder sqlWhere = null; ParamsHelper parms = null; #region 构造查询条件 new Auth().CreateSearchItem(ref sqlWhere, ref parms); if (!string.IsNullOrWhiteSpace(model.OrderCode)) { if (sqlWhere == null) { sqlWhere = new StringBuilder(500); } if (parms == null) { parms = new ParamsHelper(); } sqlWhere.Append("and OrderCode like @OrderCode "); var parm = new SqlParameter("@OrderCode", SqlDbType.VarChar, 36); parm.Value = "%" + model.OrderCode + "%"; parms.Add(parm); } if (!string.IsNullOrWhiteSpace(model.CustomerCode)) { if (sqlWhere == null) { sqlWhere = new StringBuilder(400); } if (parms == null) { parms = new ParamsHelper(); } sqlWhere.Append("and CustomerCode like @CustomerCode "); var parm = new SqlParameter("@CustomerCode", SqlDbType.VarChar, 36); parm.Value = "%" + model.CustomerCode + "%"; parms.Add(parm); } if (!string.IsNullOrWhiteSpace(model.StaffCode)) { if (sqlWhere == null) { sqlWhere = new StringBuilder(300); } if (parms == null) { parms = new ParamsHelper(); } sqlWhere.Append("and StaffCode like @StaffCode "); var parm = new SqlParameter("@StaffCode", SqlDbType.VarChar, 36); parm.Value = "%" + model.StaffCode + "%"; parms.Add(parm); } if (!string.IsNullOrWhiteSpace(model.PayWay)) { if (sqlWhere == null) { sqlWhere = new StringBuilder(200); } if (parms == null) { parms = new ParamsHelper(); } sqlWhere.Append("and PayWay like @PayWay "); var parm = new SqlParameter("@PayWay", SqlDbType.VarChar, 36); parm.Value = "%" + model.PayWay + "%"; parms.Add(parm); } if (!string.IsNullOrWhiteSpace(model.ServiceProduct)) { if (sqlWhere == null) { sqlWhere = new StringBuilder(100); } if (parms == null) { parms = new ParamsHelper(); } sqlWhere.Append("and ServiceProduct like @ServiceProduct "); var parm = new SqlParameter("@ServiceProduct", SqlDbType.VarChar, 36); parm.Value = "%" + model.ServiceProduct + "%"; parms.Add(parm); } #region 开始与结束日期段 DateTime startDate = DateTime.MinValue; DateTime endDate = DateTime.MinValue; if (!string.IsNullOrWhiteSpace(model.StartDate)) { DateTime.TryParse(model.StartDate, out startDate); } if (!string.IsNullOrWhiteSpace(model.EndDate)) { DateTime.TryParse(model.EndDate, out endDate); } if (startDate != DateTime.MinValue && endDate != DateTime.MinValue) { if (sqlWhere == null) { sqlWhere = new StringBuilder(300); } if (parms == null) { parms = new ParamsHelper(); } sqlWhere.Append(@"and (RecordDate between @StartDate and @EndDate) "); var parm = new SqlParameter("@StartDate", SqlDbType.DateTime); parm.Value = startDate; parms.Add(parm); parm = new SqlParameter("@EndDate", SqlDbType.DateTime); parm.Value = DateTime.Parse(endDate.ToString("yyyy-MM-dd") + " 23:59:59"); parms.Add(parm); } else { if (startDate != DateTime.MinValue) { if (sqlWhere == null) { sqlWhere = new StringBuilder(300); } if (parms == null) { parms = new ParamsHelper(); } sqlWhere.Append(@"and (RecordDate >= @StartDate) "); var parm = new SqlParameter("@StartDate", SqlDbType.DateTime); parm.Value = startDate; parms.Add(parm); } if (endDate != DateTime.MinValue) { if (sqlWhere == null) { sqlWhere = new StringBuilder(300); } if (parms == null) { parms = new ParamsHelper(); } sqlWhere.Append(@"and (RecordDate <= @EndDate) "); var parm = new SqlParameter("@EndDate", SqlDbType.DateTime); parm.Value = DateTime.Parse(endDate.ToString("yyyy-MM-dd") + " 23:59:59"); parms.Add(parm); } } #endregion #endregion var list = bll.GetListByJoin(model.PageIndex, model.PageSize, out totalRecord, sqlWhere == null ? null : sqlWhere.ToString(), parms == null ? null : parms.ToArray()); return(ResResult.Response(true, "", "{\"total\":" + totalRecord + ",\"rows\":" + JsonConvert.SerializeObject(list) + "}")); } catch (Exception ex) { return(ResResult.Response(false, ex.Message, "")); } }