public void ActivateById() { try { var options = CreateNewContextOptions(); using (var db = new OrderContext(options)) { ProcessingTestHelper.PopulateDefaultOrderCtx(db); } using (var db = new OrderContext(options)) { var repository = new DeliveryZoneRepository(db); var item = ProcessingTestHelper.GenerateDeliveryZone(); item.IsActive = false; Assert.DoesNotThrow(() => repository.Save(item)); Assert.DoesNotThrow(() => item = repository.Activate(item.Id)); Assert.DoesNotThrow(() => repository.Delete(item)); Assert.IsTrue(item.IsActive); } } catch (Exception ex) { LogEventManager.Logger.Error(ex); throw; } }
public void Save() { try { var options = CreateNewContextOptions(); using (var db = new OrderContext(options)) { ProcessingTestHelper.PopulateDefaultOrderCtx(db); } using (var db = new OrderContext(options)) { var repository = new DeliveryMethodRepository(db); var item = ProcessingTestHelper.GenerateDeliveryMethod(); Assert.DoesNotThrow(() => repository.Save(item)); Assert.DoesNotThrow(() => repository.Delete(item)); Assert.Greater(item.Id, 0); } } catch (Exception ex) { LogEventManager.Logger.Error(ex); throw; } }
public void GetAvailableStates() { try { var options = CreateNewContextOptions(); Contact contact = ProcessingTestHelper.GenerateContact(); Order item; using (var db = new OrderContext(options)) { db.Contacts.Add(contact); ProcessingTestHelper.PopulateDefaultOrderCtx(db); var orderState = db.OrderStates.First(); var payment = db.PaymentMethods.First(); var delivery = db.DeliveryMethods.First(); var zone = db.DeliveryZones.First(); item = ProcessingTestHelper.GenerateOrder(contact, orderState, payment, delivery, zone); db.Set <Order>().Add(item); db.SaveChanges(); } using (var db = new OrderContext(options)) { var repository = new odec.Processing.DAL.OrderProcessing(db); IEnumerable <OrderState> result = null; Assert.DoesNotThrow(() => result = repository.GetAvailableStates(item)); Assert.True(result != null && result.Any()); } } catch (Exception ex) { LogEventManager.Logger.Error(ex); throw; } }
public void GetTransferHistory() { try { var options = CreateNewContextOptions(); using (var db = new EntireMoneyProcessingContext(options)) { ProcessingTestHelper.PopulateDefaultMoneyCtx(db); } using (var db = new EntireMoneyProcessingContext(options)) { var repository = new SystemMoneyProcessing(db); //IocHelper.GetObject<ISystemMoneyProcessing>(db); var user = db.Set <User>().First(); IEnumerable <AccountOperation> result = null; Assert.DoesNotThrow(() => repository.AddFunds(user.Id, 1000)); Assert.DoesNotThrow(() => repository.TransferMoney(user.Id, 1000, user.Id)); Assert.DoesNotThrow(() => result = repository.GetTransferHistory(user.Id)); Assert.True(result != null && result.Count() > 0); } } catch (Exception ex) { LogEventManager.Logger.Error(ex); throw; } }
public decimal GetDeliveryCharge(string deliveryMethodCode, string zoneCode) { try { DeliveryMethod deliveryMethod; DeliveryZone deliveryZone; var options = CreateNewContextOptions(); using (var db = new OrderContext(options)) { ProcessingTestHelper.PopulateDefaultOrderCtx(db); deliveryMethod = db.DeliveryMethods.First(it => it.Code == deliveryMethodCode); deliveryZone = db.DeliveryZones.First(it => it.Code == zoneCode); } using (var db = new OrderContext(options)) { var repository = new DeliveryMethodRepository(db); decimal result = -1; Assert.DoesNotThrow(() => result = repository.GetDeliveryCharge(deliveryMethod, deliveryZone)); return(result); } } catch (Exception ex) { LogEventManager.Logger.Error(ex.Message, ex); throw; } }
public void ApproveWithdrawal() { try { var options = CreateNewContextOptions(); WithdrawalApplication item; using (var db = new EntireMoneyProcessingContext(options)) { ProcessingTestHelper.PopulateDefaultMoneyCtx(db); var acc = db.UsersAccount.First(); acc.CurrentMoney = 1000; db.SaveChanges(); } using (var db = new EntireMoneyProcessingContext(options)) { var repository = new WithdrawalProcessing(db); item = db.WithdrawalApplications.First(); Assert.DoesNotThrow(() => repository.ApproveWithdrawal(item)); Assert.True(item != null && item.IsApproved); } } catch (Exception ex) { LogEventManager.Logger.Error(ex.Message, ex); throw; } }
public int Get(int page, int rows, string sidx, string sord) { try { DeliveryMethodFilter filter = new DeliveryMethodFilter { Page = page, Rows = rows, Sidx = sidx, Sord = sord }; var options = CreateNewContextOptions(); using (var db = new OrderContext(options)) { ProcessingTestHelper.PopulateDefaultOrderCtx(db); } using (var db = new OrderContext(options)) { var repository = new DeliveryMethodRepository(db); IEnumerable <DeliveryMethod> result = new List <DeliveryMethod>(); Assert.DoesNotThrow(() => result = repository.Get(filter)); return(result.Count()); } } catch (Exception ex) { LogEventManager.Logger.Error(ex.Message, ex); throw; } }
public int GetDeliveryZones(string deliveryMethodCode) { try { DeliveryMethod deliveryMethod; var options = CreateNewContextOptions(); using (var db = new OrderContext(options)) { ProcessingTestHelper.PopulateDefaultOrderCtx(db); deliveryMethod = db.DeliveryMethods.First(it => it.Code == deliveryMethodCode); } using (var db = new OrderContext(options)) { var repository = new DeliveryMethodRepository(db); IEnumerable <DeliveryZone> result = new List <DeliveryZone>(); Assert.DoesNotThrow(() => result = repository.GetDeliveryZones(deliveryMethod)); return(result.Count()); } } catch (Exception ex) { LogEventManager.Logger.Error(ex.Message, ex); throw; } }
public void GetReservedMoney() { try { var options = CreateNewContextOptions(); using (var db = new EntireMoneyProcessingContext(options)) { ProcessingTestHelper.PopulateDefaultMoneyCtx(db); } using (var db = new EntireMoneyProcessingContext(options)) { var repository = new SystemMoneyProcessing(db); //IocHelper.GetObject<ISystemMoneyProcessing>(db); var user = db.Set <User>().First(); decimal money = -1; Assert.DoesNotThrow(() => money = repository.GetReservedMoney(user)); } } catch (Exception ex) { LogEventManager.Logger.Error(ex); throw; } }
public void GetBalanceById() { try { var options = CreateNewContextOptions(); using (var db = new EntireMoneyProcessingContext(options)) { ProcessingTestHelper.PopulateDefaultMoneyCtx(db); } using (var db = new EntireMoneyProcessingContext(options)) { var repository = new SystemMoneyProcessing(db); //IocHelper.GetObject<ISystemMoneyProcessing>(db); var user = db.Set <User>().First(); UserBalance result = null; Assert.DoesNotThrow(() => result = repository.GetUserBalance(user.Id)); Assert.NotNull(result); } } catch (Exception ex) { LogEventManager.Logger.Error(ex); throw; } }
public void AddFunds() { try { var options = CreateNewContextOptions(); using (var db = new EntireMoneyProcessingContext(options)) { ProcessingTestHelper.PopulateDefaultMoneyCtx(db); } using (var db = new EntireMoneyProcessingContext(options)) { var repository = new SystemMoneyProcessing(db); //IocHelper.GetObject<ISystemMoneyProcessing>(db); var user = db.Set <User>().First(); var money = repository.GetUserBalance(user.Id).CurrentMoney; Assert.DoesNotThrow(() => repository.AddFunds(user.Id, 1000)); Assert.True(repository.GetUserBalance(user.Id).CurrentMoney == money + 1000); } } catch (Exception ex) { LogEventManager.Logger.Error(ex); throw; } }
public void MakeTransferOrder() { try { var options = CreateNewContextOptions(); using (var db = new EntireMoneyProcessingContext(options)) { ProcessingTestHelper.PopulateDefaultMoneyCtx(db); } using (var db = new EntireMoneyProcessingContext(options)) { var repository = new SystemMoneyProcessing(db); // IocHelper.GetObject<ISystemMoneyProcessing>(db); var paymentRepository = new PaymentMethodRepository(db); //IocHelper.GetObject<IPaymentMethodRepository<int, DbContext, PaymentMethod, PaymentMethodFilter>>(db); var payment = paymentRepository.Get(new PaymentMethodFilter()).ToList() .Single(it => it.Code == "CREDITPAYMENT"); var userId = db.Set <User>().First().Id; Order result = null; Assert.DoesNotThrow(() => result = repository.MakeTransferOrder(userId, 500, new OperationType(), payment)); Assert.NotNull(result); } } catch (Exception ex) { LogEventManager.Logger.Error(ex); throw; } }
public bool CreateApplication(string withdrawalMethodCode, string userName) { try { var options = CreateNewContextOptions(); User user; WithdrawalMethod withdrawalMethod; using (var db = new EntireMoneyProcessingContext(options)) { ProcessingTestHelper.PopulateDefaultMoneyCtx(db); } WithdrawalApplication result = null; using (var db = new EntireMoneyProcessingContext(options)) { var repository = new WithdrawalProcessing(db); user = db.Set <User>().First(it => it.UserName == userName); withdrawalMethod = db.Set <WithdrawalMethod>().First(it => it.Code == withdrawalMethodCode); Assert.DoesNotThrow(() => result = repository.CreateApplication(ProcessingTestHelper.GenerateWithdrawalApplication(user, withdrawalMethod))); return(result != null && result.Id > 0); } } catch (Exception ex) { LogEventManager.Logger.Error(ex.Message, ex); throw; } }
public void Delete() { try { var options = CreateNewContextOptions(); Contact contact = ProcessingTestHelper.GenerateContact(); using (var db = new OrderContext(options)) { db.Contacts.Add(contact); ProcessingTestHelper.PopulateDefaultOrderCtx(db); } using (var db = new OrderContext(options)) { var repository = new OrderRepository(db); var orderState = db.OrderStates.First(); var payment = db.PaymentMethods.First(); var delivery = db.DeliveryMethods.First(); var zone = db.DeliveryZones.First(); var item = ProcessingTestHelper.GenerateOrder(contact, orderState, payment, delivery, zone); Assert.DoesNotThrow(() => repository.Save(item)); Assert.DoesNotThrow(() => repository.Delete(item)); } } catch (Exception ex) { LogEventManager.Logger.Error(ex); throw; } }
public void AddOrderDetails() { try { var options = Tester <OrderContext> .CreateNewContextOptions(); var orderDetails = new List <OrderDetail> { new OrderDetail { DiscountedCost = 200, EntityCount = 20, Total = 4000, JsonEntityDetails = JsonConvert.SerializeObject(new { Id = 1, Name = "Hat", IsActive = true, Cost = 200 }), MomentCost = 200 }, new OrderDetail { DiscountedCost = 300, EntityCount = 20, Total = 4000, JsonEntityDetails = JsonConvert.SerializeObject(new { Id = 2, Name = "Hat2", IsActive = true, Cost = 300 }), MomentCost = 300 }, }; var contact = ProcessingTestHelper.GenerateContact(); Order order; using (var db = new OrderContext(options)) { db.Contacts.Add(contact); ProcessingTestHelper.PopulateDefaultOrderCtx(db); var orderState1 = db.OrderStates.First(); var payment1 = db.PaymentMethods.First(); var delivery1 = db.DeliveryMethods.First(); var zone = db.DeliveryZones.First(); order = ProcessingTestHelper.GenerateOrder(contact, orderState1, payment1, delivery1, zone); db.Set <Order>().Add(order); db.SaveChanges(); } using (var db = new OrderContext(options)) { var repository = new OrderRepository(db); Assert.DoesNotThrow(() => repository.AddOrderDetails(orderDetails, order)); Assert.True(orderDetails.All(it => it.OrderId != 0)); } } catch (Exception ex) { LogEventManager.Logger.Error(ex.Message, ex); throw; } }
public IEnumerator GetEnumerator() { var options = CreateNewContextOptions(); using (var db = new OrderContext(options)) { ProcessingTestHelper.PopulateDefaultOrderCtx(db); } yield return(new TestCaseData(options, new DeliveryZoneFilter { Page = 1, Rows = 1, Sidx = "Name", Sord = "asc" }, 1)); yield return(new TestCaseData(options, new DeliveryZoneFilter { Page = 1, Sidx = "Name", Sord = "asc" }, 5)); yield return(new TestCaseData(options, new DeliveryZoneFilter { Page = 2, Sidx = "Name", Sord = "asc" }, 0)); yield return(new TestCaseData(options, new DeliveryZoneFilter { Page = 1, Rows = 2, Sidx = "Name", Sord = "asc" }, 2)); yield return(new TestCaseData(options, new DeliveryZoneFilter { Page = 2, Rows = 3, Sidx = "Name", Sord = "asc" }, 2)); }
public void GetOrderDetailsByOrder() { try { var options = Tester <OrderContext> .CreateNewContextOptions(); var contact = ProcessingTestHelper.GenerateContact(); Order order; using (var db = new OrderContext(options)) { db.Contacts.Add(contact); ProcessingTestHelper.PopulateDefaultOrderCtx(db); var orderState1 = db.OrderStates.First(); var payment1 = db.PaymentMethods.First(); var delivery1 = db.DeliveryMethods.First(); var zone = db.DeliveryZones.First(); order = ProcessingTestHelper.GenerateOrder(contact, orderState1, payment1, delivery1, zone); db.Set <Order>().Add(order); var detailsOrder = ProcessingTestHelper.GenerateOrderDetail(order, new { Id = 1, Name = "Hat", Cost = 200 }); var detailsOrder2 = ProcessingTestHelper.GenerateOrderDetail(order, new { Id = 2, Name = "Hat", Cost = 200 }); var detailsOrder3 = ProcessingTestHelper.GenerateOrderDetail(order, new { Id = 3, Name = "Hat", Cost = 200 }); var detailsOrder4 = ProcessingTestHelper.GenerateOrderDetail(order, new { Id = 4, Name = "Hat", Cost = 200 }); var detailsOrder5 = ProcessingTestHelper.GenerateOrderDetail(order, new { Id = 5, Name = "Hat", Cost = 200 }); db.Set <OrderDetail>().AddRange(detailsOrder, detailsOrder2, detailsOrder3, detailsOrder4, detailsOrder5); db.SaveChanges(); } using (var db = new OrderContext(options)) { var repository = new OrderRepository(db); IEnumerable <OrderDetail> result = null; Assert.DoesNotThrow(() => result = repository.GetOrderDetails(order)); Assert.True(result != null && result.Count() == 5); } } catch (Exception ex) { LogEventManager.Logger.Error(ex.Message, ex); throw; } }
public void TransferBlockedMoney() { try { var options = CreateNewContextOptions(); User user; using (var db = new EntireMoneyProcessingContext(options)) { ProcessingTestHelper.PopulateDefaultMoneyCtx(db); } using (var db = new EntireMoneyProcessingContext(options)) { user = db.Set <User>().First(it => it.UserName == "Andrew"); var repository = new SystemMoneyProcessing(db); Assert.DoesNotThrow(() => repository.AddFunds(user.Id, 1000)); Assert.DoesNotThrow(() => repository.BlockFunds(user.Id, 1000)); } using (var db = new EntireMoneyProcessingContext(options)) { var repository = new SystemMoneyProcessing(db); Assert.DoesNotThrow(() => repository.TransferBlockedMoney(user.Id, 1000, user.Id)); } using (var db = new EntireMoneyProcessingContext(options)) { user = db.Set <User>().First(it => it.UserName == "TestUser2"); } using (var db = new EntireMoneyProcessingContext(options)) { var repository = new SystemMoneyProcessing(db); Assert.DoesNotThrow(() => repository.AddFunds(user.Id, 1000)); Assert.DoesNotThrow(() => repository.BlockFunds(user.Id, 1000)); } using (var db = new EntireMoneyProcessingContext(options)) { var repository = new SystemMoneyProcessing(db); Assert.DoesNotThrow(() => repository.TransferBlockedMoney(user.Id, 1000, user.Id)); } } catch (Exception ex) { LogEventManager.Logger.Error(ex); throw; } }
public void GetById() { try { var options = CreateNewContextOptions(); Order order; var obj = new { Id = 1, Name = "Hat", Price = 200 }; using (var db = new OrderContext(options)) { var contact = ProcessingTestHelper.GenerateContact(); ProcessingTestHelper.PopulateDefaultOrderCtx(db); var orderState = db.OrderStates.First(); var payment = db.PaymentMethods.First(); var delivery = db.DeliveryMethods.First(); var zone = db.DeliveryZones.First(); order = ProcessingTestHelper.GenerateOrder(contact, orderState, payment, delivery, zone); db.Orders.Add(order); db.SaveChanges(); } using (var db = new OrderContext(options)) { var repository = new OrderDetailsRepository(db); var item = ProcessingTestHelper.GenerateOrderDetail(order, obj); Assert.DoesNotThrow(() => repository.Save(item)); Assert.DoesNotThrow(() => item = repository.GetById(item.Id)); Assert.DoesNotThrow(() => repository.Delete(item)); Assert.NotNull(item); Assert.Greater(item.Id, 0); } } catch (Exception ex) { LogEventManager.Logger.Error(ex); throw; } }
public IEnumerator GetEnumerator() { var options = CreateNewContextOptions(); WithdrawalMethod courierMethod; WithdrawalMethod creditCardMethod; User user; using (var db = new EntireMoneyProcessingContext(options)) { ProcessingTestHelper.PopulateDefaultMoneyCtx(db); courierMethod = db.Set <WithdrawalMethod>().First(it => it.Code == "courier".ToUpper()); creditCardMethod = db.Set <WithdrawalMethod>().First(it => it.Code == "creditCard".ToUpper()); user = db.Set <User>().First(it => it.UserName == "Andrew"); } var obj1 = new TestComplexObject { WithdrawalMethod = courierMethod, User = user, WithdrawalBefore = DateTime.Now.AddDays(15), Amount = 100M, Comment = "MyComment" }; var obj2 = new TestComplexObject { WithdrawalMethod = creditCardMethod, User = user, WithdrawalBefore = DateTime.Now.AddDays(15), Amount = 100M, Comment = "MyComment" }; yield return (new TestCaseData(options, obj1).SetName("CreateApplication: " + JsonConvert.SerializeObject(obj1).Replace('.', ','))); yield return (new TestCaseData(options, obj2).SetName("CreateApplication: " + JsonConvert.SerializeObject(obj2).Replace('.', ','))); }
public void ChangeOrderStateById() { try { var options = Tester <OrderContext> .CreateNewContextOptions(); var contact = ProcessingTestHelper.GenerateContact(); Order order; OrderState resultState; using (var db = new OrderContext(options)) { db.Contacts.Add(contact); ProcessingTestHelper.PopulateDefaultOrderCtx(db); var orderState1 = db.OrderStates.First(); var payment1 = db.PaymentMethods.First(); var delivery1 = db.DeliveryMethods.First(); var zone = db.DeliveryZones.First(); resultState = db.OrderStates.Last(); order = ProcessingTestHelper.GenerateOrder(contact, orderState1, payment1, delivery1, zone); db.Set <Order>().Add(order); db.SaveChanges(); } using (var db = new OrderContext(options)) { var repository = new odec.Processing.DAL.OrderProcessing(db); Assert.DoesNotThrow(() => repository.ChangeOrderState(order.Id, resultState)); order = db.Set <Order>().Single(it => it.Id == order.Id); Assert.True(order.OrderStateId == resultState.Id); } } catch (Exception ex) { LogEventManager.Logger.Error(ex); throw; } }
public void GetById() { try { var options = CreateNewContextOptions(); using (var db = new EntireMoneyProcessingContext(options)) { ProcessingTestHelper.PopulateDefaultMoneyCtx(db); } WithdrawalApplication result = null; using (var db = new EntireMoneyProcessingContext(options)) { var repository = new WithdrawalProcessing(db); Assert.DoesNotThrow(() => result = repository.GetById(db.WithdrawalApplications.First().Id)); Assert.True(result != null && result.Id > 0); } } catch (Exception ex) { LogEventManager.Logger.Error(ex.Message, ex); throw; } }
public IEnumerator GetEnumerator() { var options = Tester <OrderContext> .CreateNewContextOptions(); var contact = ProcessingTestHelper.GenerateContact(); User user = new User { UserName = "******" }; OrderState orderState1; OrderState orderState2; PaymentMethod payment1; PaymentMethod payment2; DeliveryMethod delivery1; DeliveryMethod delivery2; DeliveryZone zone; using (var db = new OrderContext(options)) { db.Contacts.Add(contact); db.Set <User>().Add(user); db.Set <UserContact>().Add(new UserContact { IsAccountBased = true, UserId = user.Id, ContactId = contact.Id }); ProcessingTestHelper.PopulateDefaultOrderCtx(db); orderState1 = db.OrderStates.First(); orderState2 = db.OrderStates.Last(); payment1 = db.PaymentMethods.First(); payment2 = db.PaymentMethods.Last(); delivery1 = db.DeliveryMethods.First(); delivery2 = db.DeliveryMethods.Last(); zone = db.DeliveryZones.First(); var order1 = ProcessingTestHelper.GenerateOrder(contact, orderState1, payment1, delivery1, zone); var order2 = ProcessingTestHelper.GenerateOrder(contact, orderState1, payment1, delivery1, zone); var order3 = ProcessingTestHelper.GenerateOrder(contact, orderState1, payment1, delivery1, zone); var order4 = ProcessingTestHelper.GenerateOrder(contact, orderState2, payment2, delivery2, zone); var order5 = ProcessingTestHelper.GenerateOrder(contact, orderState2, payment2, delivery2, zone); var order6 = ProcessingTestHelper.GenerateOrder(ProcessingTestHelper.GenerateContact(), orderState2, payment2, delivery2, zone); db.Set <Order>().AddRange(order1, order2, order3, order4, order5, order6); db.SaveChanges(); } //Order is required so result is 0 var emptyFilter = new OrderFilter <int?>(); var serializerSettings = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore }; var userFilter = new OrderFilter <int?> { UserId = user.Id }; var userDeliveryFilter1 = new OrderFilter <int?> { UserId = user.Id, DeliveryMethodId = delivery2.Id }; var userDeliveryFilter2 = new OrderFilter <int?> { UserId = user.Id, DeliveryMethodId = delivery1.Id }; var deliveryFilter = new OrderFilter <int?> { DeliveryMethodId = delivery2.Id }; var deliveryPaymentUserFilter = new OrderFilter <int?> { UserId = user.Id, DeliveryMethodId = delivery1.Id, PaymentMethodId = payment1.Id, }; var deliveryPaymentStateUserFilter = new OrderFilter <int?> { UserId = user.Id, DeliveryMethodId = delivery1.Id, PaymentMethodId = payment1.Id, OrderStateId = orderState1.Id }; var deliveryPaymentStateUserFilter2 = new OrderFilter <int?> { UserId = user.Id, DeliveryMethodId = delivery1.Id, PaymentMethodId = payment2.Id, OrderStateId = orderState1.Id }; var deliveryPaymentStateUserFilter3 = new OrderFilter <int?> { UserId = user.Id, DeliveryMethodId = delivery1.Id, PaymentMethodId = payment1.Id, OrderStateId = orderState2.Id }; var deliveryPaymentStateUserFilter4 = new OrderFilter <int?> { UserId = user.Id, DeliveryMethodId = delivery2.Id, PaymentMethodId = payment1.Id, OrderStateId = orderState1.Id }; var deliveryPaymentUserFilter2 = new OrderFilter <int?> { UserId = user.Id, DeliveryMethodId = delivery2.Id, PaymentMethodId = payment1.Id }; var deliveryPaymentUserFilter3 = new OrderFilter <int?> { UserId = user.Id, DeliveryMethodId = delivery1.Id, PaymentMethodId = payment2.Id }; var userTotalFilter = new OrderFilter <int?> { UserId = user.Id, TotalInterval = new Interval <decimal?> { Start = 2001 } }; var totalStartFilter = new OrderFilter <int?> { TotalInterval = new Interval <decimal?> { Start = 2001 } }; var totalFilter = new OrderFilter <int?> { TotalInterval = new Interval <decimal?> { Start = 2001, End = 2004 } }; var totalFilter1 = new OrderFilter <int?> { TotalInterval = new Interval <decimal?> { Start = 500, End = 1999 } }; var totalFilterEnd = new OrderFilter <int?> { TotalInterval = new Interval <decimal?> { End = 1999 } }; var enumerator = new List <Tuple <OrderFilter <int?>, int> > { new Tuple <OrderFilter <int?>, int>(emptyFilter, 6), new Tuple <OrderFilter <int?>, int>(userFilter, 5), new Tuple <OrderFilter <int?>, int>(deliveryFilter, 3), new Tuple <OrderFilter <int?>, int>(userDeliveryFilter1, 2), new Tuple <OrderFilter <int?>, int>(userDeliveryFilter2, 3), new Tuple <OrderFilter <int?>, int>(deliveryPaymentUserFilter, 3), new Tuple <OrderFilter <int?>, int>(deliveryPaymentStateUserFilter, 3), new Tuple <OrderFilter <int?>, int>(deliveryPaymentStateUserFilter2, 0), new Tuple <OrderFilter <int?>, int>(deliveryPaymentStateUserFilter3, 0), new Tuple <OrderFilter <int?>, int>(deliveryPaymentStateUserFilter4, 0), new Tuple <OrderFilter <int?>, int>(deliveryPaymentUserFilter2, 0), new Tuple <OrderFilter <int?>, int>(deliveryPaymentUserFilter3, 0), new Tuple <OrderFilter <int?>, int>(userTotalFilter, 0), new Tuple <OrderFilter <int?>, int>(totalStartFilter, 0), new Tuple <OrderFilter <int?>, int>(totalFilter, 0), new Tuple <OrderFilter <int?>, int>(totalFilter1, 0), new Tuple <OrderFilter <int?>, int>(totalFilterEnd, 0), }; return (enumerator.Select( it => new TestCaseData(options, it.Item1, it.Item2) .SetName("Get: Filter -> " + JsonConvert.SerializeObject(it.Item1, serializerSettings).Replace('.', ',') )) .GetEnumerator()); }
public IEnumerator GetEnumerator() { var options = CreateNewContextOptions(); WithdrawalMethod courierMethod; WithdrawalMethod creditCardMethod; User user; using (var db = new EntireMoneyProcessingContext(options)) { ProcessingTestHelper.PopulateDefaultMoneyCtx(db); courierMethod = db.Set <WithdrawalMethod>().First(it => it.Code == "courier".ToUpper()); creditCardMethod = db.Set <WithdrawalMethod>().First(it => it.Code == "creditCard".ToUpper()); user = db.Set <User>().First(it => it.UserName == "Andrew"); } var serializerSettings = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore, DateFormatString = "dd-MM-yyyy" //, // Culture = new CultureInfo("ru-ru") //DateFormatHandling = DateFormatHandling.MicrosoftDateFormat }; var withdrawalFilter = new WithdrawalApplicationFilter <int, int?> { UserId = user.Id }; yield return(new TestCaseData(options, withdrawalFilter, 5) .SetName("GetApplications: Filter -> " + JsonConvert.SerializeObject(withdrawalFilter, serializerSettings))); var usercourierMethodFilter = new WithdrawalApplicationFilter <int, int?> { UserId = user.Id, WithdrawalMethodId = courierMethod.Id }; yield return(new TestCaseData(options, usercourierMethodFilter, 3) .SetName("GetApplications: Filter -> " + JsonConvert.SerializeObject(usercourierMethodFilter, serializerSettings))); var userCreditCardFilter = new WithdrawalApplicationFilter <int, int?> { UserId = user.Id, WithdrawalMethodId = creditCardMethod.Id }; yield return(new TestCaseData(options, userCreditCardFilter, 2) .SetName("GetApplications: Filter -> " + JsonConvert.SerializeObject(userCreditCardFilter, serializerSettings))); var userCorierDateIntervalFilter1 = new WithdrawalApplicationFilter <int, int?> { UserId = user.Id, WithdrawalMethodId = courierMethod.Id, DateCreatedInterval = new Interval <DateTime?>() { End = DateTime.Now.AddDays(200) } }; yield return(new TestCaseData(options, userCorierDateIntervalFilter1, 3) .SetName("GetApplications: Filter -> " + JsonConvert.SerializeObject(userCorierDateIntervalFilter1, serializerSettings))); var userCorierDateIntervalFilter2 = new WithdrawalApplicationFilter <int, int?> { UserId = user.Id, WithdrawalMethodId = courierMethod.Id, DateCreatedInterval = new Interval <DateTime?>() { Start = DateTime.Now.AddDays(-14) } }; yield return(new TestCaseData(options, userCorierDateIntervalFilter2, 3) .SetName("GetApplications: Filter -> " + JsonConvert.SerializeObject(userCorierDateIntervalFilter2, serializerSettings))); var userCorierDateIntervalFilter3 = new WithdrawalApplicationFilter <int, int?> { UserId = user.Id, WithdrawalMethodId = courierMethod.Id, DateCreatedInterval = new Interval <DateTime?>() { End = DateTime.Now.AddDays(7), Start = DateTime.Now.AddDays(-14) } }; yield return(new TestCaseData(options, userCorierDateIntervalFilter3, 3) .SetName("GetApplications: Filter -> " + JsonConvert.SerializeObject(userCorierDateIntervalFilter3, serializerSettings))); var userCorierDateIntervalWithdrawalDateFilter1 = new WithdrawalApplicationFilter <int, int?> { UserId = user.Id, WithdrawalMethodId = courierMethod.Id, DateCreatedInterval = new Interval <DateTime?> { End = DateTime.Now.AddDays(7), Start = DateTime.Now.AddDays(-14) }, WithdrawalBeforeInterval = new Interval <DateTime?> { End = DateTime.Now.AddDays(15), Start = DateTime.Now.AddDays(-14) } }; yield return(new TestCaseData(options, userCorierDateIntervalWithdrawalDateFilter1, 3) .SetName("GetApplications: Filter -> " + JsonConvert.SerializeObject(userCorierDateIntervalWithdrawalDateFilter1, serializerSettings))); var userCorierDateIntervalWithdrawalDateAmountFilter1 = new WithdrawalApplicationFilter <int, int?> { UserId = user.Id, WithdrawalMethodId = courierMethod.Id, DateCreatedInterval = new Interval <DateTime?> { End = DateTime.Now.AddDays(7), Start = DateTime.Now.AddDays(-14) }, WithdrawalBeforeInterval = new Interval <DateTime?> { End = DateTime.Now.AddDays(15), Start = DateTime.Now.AddDays(-14) }, Amount = new Interval <decimal?>() { Start = 0 } }; yield return(new TestCaseData(options, userCorierDateIntervalWithdrawalDateAmountFilter1, 3) .SetName("GetApplications: Filter -> " + JsonConvert.SerializeObject(userCorierDateIntervalWithdrawalDateAmountFilter1, serializerSettings))); var userCorierDateIntervalWithdrawalDateAmountFilter2 = new WithdrawalApplicationFilter <int, int?> { UserId = user.Id, WithdrawalMethodId = courierMethod.Id, DateCreatedInterval = new Interval <DateTime?> { End = DateTime.Now.AddDays(7), Start = DateTime.Now.AddDays(-14) }, WithdrawalBeforeInterval = new Interval <DateTime?> { End = DateTime.Now.AddDays(7), Start = DateTime.Now.AddDays(-14) }, Amount = new Interval <decimal?>() { Start = 0 } }; yield return(new TestCaseData(options, userCorierDateIntervalWithdrawalDateAmountFilter2, 0) .SetName("GetApplications: Filter -> " + JsonConvert.SerializeObject(userCorierDateIntervalWithdrawalDateAmountFilter2, serializerSettings))); var userCorierDateIntervalWithdrawalDateAmountFilter3 = new WithdrawalApplicationFilter <int, int?> { UserId = user.Id, WithdrawalMethodId = courierMethod.Id, DateCreatedInterval = new Interval <DateTime?> { End = DateTime.Now.AddDays(7), Start = DateTime.Now.AddDays(-14) }, WithdrawalBeforeInterval = new Interval <DateTime?> { End = DateTime.Now.AddDays(15), Start = DateTime.Now.AddDays(-14) }, Amount = new Interval <decimal?>() { Start = 0 } }; yield return(new TestCaseData(options, userCorierDateIntervalWithdrawalDateAmountFilter3, 3) .SetName("GetApplications: Filter -> " + JsonConvert.SerializeObject(userCorierDateIntervalWithdrawalDateAmountFilter3, serializerSettings))); var userCorierDateIntervalWithdrawalDateAmountFilter4 = new WithdrawalApplicationFilter <int, int?> { UserId = user.Id, WithdrawalMethodId = courierMethod.Id, DateCreatedInterval = new Interval <DateTime?> { End = DateTime.Now.AddDays(7), Start = DateTime.Now.AddDays(-14) }, WithdrawalBeforeInterval = new Interval <DateTime?> { End = DateTime.Now.AddDays(15), Start = DateTime.Now.AddDays(-14) }, Amount = new Interval <decimal?>() { Start = 0, End = 100000 } }; yield return(new TestCaseData(options, userCorierDateIntervalWithdrawalDateAmountFilter4, 3) .SetName("GetApplications: Filter -> " + JsonConvert.SerializeObject(userCorierDateIntervalWithdrawalDateAmountFilter4, serializerSettings))); var userCorierDateIntervalWithdrawalDateAmountFilter5 = new WithdrawalApplicationFilter <int, int?> { UserId = user.Id, WithdrawalMethodId = courierMethod.Id, DateCreatedInterval = new Interval <DateTime?> { End = DateTime.Now.AddDays(7), Start = DateTime.Now.AddDays(-14) }, WithdrawalBeforeInterval = new Interval <DateTime?> { End = DateTime.Now.AddDays(15), Start = DateTime.Now.AddDays(-14) }, Amount = new Interval <decimal?>() { Start = 1001, End = 100000 } }; yield return(new TestCaseData(options, userCorierDateIntervalWithdrawalDateAmountFilter5, 0) .SetName("GetApplications: Filter -> " + JsonConvert.SerializeObject(userCorierDateIntervalWithdrawalDateAmountFilter5, serializerSettings))); ; var userCorierDateIntervalWithdrawalDateAmountFilter6 = new WithdrawalApplicationFilter <int, int?> { UserId = user.Id, WithdrawalMethodId = courierMethod.Id, DateCreatedInterval = new Interval <DateTime?> { End = DateTime.Now.AddDays(7), Start = DateTime.Now.AddDays(-14) }, WithdrawalBeforeInterval = new Interval <DateTime?> { End = DateTime.Now.AddDays(15), Start = DateTime.Now.AddDays(-14) }, Amount = new Interval <decimal?> { Start = 1001 } }; yield return(new TestCaseData(options, userCorierDateIntervalWithdrawalDateAmountFilter6, 0) .SetName("GetApplications: Filter -> " + JsonConvert.SerializeObject(userCorierDateIntervalWithdrawalDateAmountFilter6, serializerSettings))); var userCorierDateIntervalWithdrawalDateAmountFilter7 = new WithdrawalApplicationFilter <int, int?> { UserId = user.Id, WithdrawalMethodId = courierMethod.Id, DateCreatedInterval = new Interval <DateTime?> { End = DateTime.Now.AddDays(7), Start = DateTime.Now.AddDays(-14) }, WithdrawalBeforeInterval = new Interval <DateTime?> { End = DateTime.Now.AddDays(15), Start = DateTime.Now.AddDays(-14) }, Amount = new Interval <decimal?>() { End = 1001 } }; yield return(new TestCaseData(options, userCorierDateIntervalWithdrawalDateAmountFilter7, 3) .SetName("GetApplications: Filter -> " + JsonConvert.SerializeObject(userCorierDateIntervalWithdrawalDateAmountFilter7, serializerSettings))); var userCorierDateIntervalWithdrawalDateAmountFilter8 = new WithdrawalApplicationFilter <int, int?> { UserId = user.Id, WithdrawalMethodId = courierMethod.Id, DateCreatedInterval = new Interval <DateTime?> { End = DateTime.Now.AddDays(7), Start = DateTime.Now.AddDays(-14) }, WithdrawalBeforeInterval = new Interval <DateTime?> { End = DateTime.Now.AddDays(15), Start = DateTime.Now.AddDays(-14) }, Amount = new Interval <decimal?>() { Start = 99, End = 999 } }; yield return(new TestCaseData(options, userCorierDateIntervalWithdrawalDateAmountFilter8, 0) .SetName("GetApplications: Filter -> " + JsonConvert.SerializeObject(userCorierDateIntervalWithdrawalDateAmountFilter8, serializerSettings))); var userCorierDateIntervalWithdrawalDateAmountFilter9 = new WithdrawalApplicationFilter <int, int?> { UserId = user.Id, WithdrawalMethodId = courierMethod.Id, DateCreatedInterval = new Interval <DateTime?> { End = DateTime.Now.AddDays(7), Start = DateTime.Now.AddDays(-14) }, WithdrawalBeforeInterval = new Interval <DateTime?> { End = DateTime.Now.AddDays(15), Start = DateTime.Now.AddDays(-14) }, Amount = new Interval <decimal?>() { Start = 99, End = 999 } }; yield return(new TestCaseData(options, userCorierDateIntervalWithdrawalDateAmountFilter9, 0) .SetName("GetApplications: Filter -> " + JsonConvert.SerializeObject(userCorierDateIntervalWithdrawalDateAmountFilter9, serializerSettings))); ; }
public IEnumerator GetEnumerator() { var options = Tester <OrderContext> .CreateNewContextOptions(); var contact = ProcessingTestHelper.GenerateContact(); Order order1, order2; using (var db = new OrderContext(options)) { db.Contacts.Add(contact); ProcessingTestHelper.PopulateDefaultOrderCtx(db); var orderState = db.OrderStates.First(); var payment = db.PaymentMethods.First(); var delivery = db.DeliveryMethods.First(); var zone = db.DeliveryZones.First(); order1 = ProcessingTestHelper.GenerateOrder(contact, orderState, payment, delivery, zone); order2 = ProcessingTestHelper.GenerateOrder(contact, orderState, payment, delivery, zone); db.Set <Order>().AddRange(order1, order2); var detailsOrder = ProcessingTestHelper.GenerateOrderDetail(order1, new { Id = 1, Name = "Hat", Cost = 200 }); var detailsOrder2 = ProcessingTestHelper.GenerateOrderDetail(order1, new { Id = 2, Name = "Hat", Cost = 200 }); var detailsOrder3 = ProcessingTestHelper.GenerateOrderDetail(order1, new { Id = 3, Name = "Hat", Cost = 200 }); var detailsOrder4 = ProcessingTestHelper.GenerateOrderDetail(order2, new { Id = 4, Name = "Hat", Cost = 200 }); var detailsOrder5 = ProcessingTestHelper.GenerateOrderDetail(order2, new { Id = 5, Name = "Hat", Cost = 200 }); db.Set <OrderDetail>().AddRange(detailsOrder, detailsOrder2, detailsOrder3, detailsOrder4, detailsOrder5); db.SaveChanges(); } //Order is required so result is 0 yield return(new TestCaseData(options, new OrderDetailsFilter <int>(), 0)); yield return(new TestCaseData(options, new OrderDetailsFilter <int> { OrderId = order1.Id }, 3)); yield return(new TestCaseData(options, new OrderDetailsFilter <int> { OrderId = order2.Id }, 2)); yield return(new TestCaseData(options, new OrderDetailsFilter <int> { OrderId = order1.Id, TotalInterval = new Interval <decimal?> { Start = 999 } }, 3)); yield return(new TestCaseData(options, new OrderDetailsFilter <int> { OrderId = order1.Id, TotalInterval = new Interval <decimal?> { Start = 888, End = 1001 } }, 3)); yield return(new TestCaseData(options, new OrderDetailsFilter <int> { OrderId = order1.Id, TotalInterval = new Interval <decimal?> { Start = 1001 } }, 0)); yield return(new TestCaseData(options, new OrderDetailsFilter <int> { OrderId = order1.Id, TotalInterval = new Interval <decimal?> { Start = 1001, End = 1004 } }, 0)); yield return(new TestCaseData(options, new OrderDetailsFilter <int> { OrderId = order1.Id, TotalInterval = new Interval <decimal?> { Start = 500, End = 999 } }, 0)); yield return(new TestCaseData(options, new OrderDetailsFilter <int> { OrderId = order1.Id, TotalInterval = new Interval <decimal?> { End = 999 } }, 0)); }
public IEnumerator GetEnumerator() { var options = CreateNewContextOptions(); WithdrawalMethod courierMethod; WithdrawalMethod creditCardMethod; User user; using (var db = new EntireMoneyProcessingContext(options)) { ProcessingTestHelper.PopulateDefaultMoneyCtx(db); courierMethod = db.Set <WithdrawalMethod>().First(it => it.Code == "courier".ToUpper()); creditCardMethod = db.Set <WithdrawalMethod>().First(it => it.Code == "creditCard".ToUpper()); user = db.Set <User>().First(it => it.UserName == "Andrew"); } var serializerSettings = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore // DateFormatHandling = DateFormatHandling.MicrosoftDateFormat }; yield return(new TestCaseData(options, new CreateApplicationIdTestObj { WithdrawalMethodId = courierMethod.Id, UserId = user.Id, WithdrawalBefore = DateTime.Now.AddDays(15), Amount = 100M, Comment = null }) .SetName("CreateAplicationById: Case 1" + JsonConvert.SerializeObject(new CreateApplicationIdTestObj { WithdrawalMethodId = courierMethod.Id, UserId = user.Id, WithdrawalBefore = DateTime.Now.AddDays(15), Amount = 100M, Comment = null }, serializerSettings).Replace('.', ','))); yield return(new TestCaseData(options, new CreateApplicationIdTestObj { WithdrawalMethodId = creditCardMethod.Id, UserId = user.Id, WithdrawalBefore = DateTime.Now.AddDays(15), Amount = 100M, Comment = string.Empty }) .SetName("CreateAplication: " + JsonConvert.SerializeObject(new CreateApplicationIdTestObj { WithdrawalMethodId = creditCardMethod.Id, UserId = user.Id, WithdrawalBefore = DateTime.Now.AddDays(15), Amount = 100M, Comment = string.Empty }, serializerSettings).Replace('.', ',')));; yield return(new TestCaseData(options, new CreateApplicationIdTestObj { WithdrawalMethodId = courierMethod.Id, UserId = user.Id, WithdrawalBefore = DateTime.Now.AddDays(15), Amount = 100M, Comment = "MyComment" }).SetName("CreateAplication: " + JsonConvert.SerializeObject(new CreateApplicationIdTestObj { WithdrawalMethodId = courierMethod.Id, UserId = user.Id, WithdrawalBefore = DateTime.Now.AddDays(15), Amount = 100M, Comment = "MyComment" }, serializerSettings).Replace('.', ','))); }