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;
            }
        }
コード例 #2
0
        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;
            }
        }
コード例 #3
0
        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;
            }
        }
コード例 #5
0
 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;
     }
 }
コード例 #6
0
 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;
     }
 }
コード例 #7
0
 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;
     }
 }
コード例 #8
0
 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;
            }
        }
コード例 #13
0
 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;
     }
 }
コード例 #14
0
        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;
            }
        }
コード例 #15
0
        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));
            }
コード例 #17
0
        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;
            }
        }
コード例 #20
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 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('.', ',')));
            }
コード例 #21
0
        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;
            }
        }
コード例 #22
0
 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;
     }
 }
コード例 #23
0
            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());
            }
コード例 #24
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,
                    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));
        }
コード例 #26
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('.', ',')));
            }