public ActionResult Payment(Guid jobAdId, JobAdFeaturePack featurePack) { var employer = CurrentEmployer; var jobAd = GetJobAd(employer.Id, jobAdId); if (jobAd == null) { return(NotFound("job ad", "id", jobAdId)); } var product = _employerOrdersQuery.GetJobAdFeaturePackProduct(featurePack); if (product == null) { return(NotFound("feature pack", "featurePack", featurePack)); } var creditCard = new CreditCard { ExpiryDate = GetDefaultExpiryDate() }; var order = _employerOrdersCommand.PrepareOrder(new[] { product.Id }, null, null, GetCreditCardType(creditCard)); return(View(new PaymentJobAdModel { AuthoriseCreditCard = false, CouponCode = null, CreditCard = creditCard, OrderDetails = _employerOrdersQuery.GetOrderDetails(_creditsQuery, order, _productsQuery.GetProducts()), Product = product, })); }
private Order AssertOrder(Guid employerId, JobAdFeaturePack featurePack) { var orders = _ordersQuery.GetOrders(employerId); Assert.AreEqual(1, orders.Count); var order = orders[0]; Assert.AreEqual(featurePack == JobAdFeaturePack.FeaturePack1 ? 10m : 20m, order.Price); Assert.AreEqual(featurePack == JobAdFeaturePack.FeaturePack1 ? 11m : 22m, order.AdjustedPrice); Assert.AreEqual(employerId, order.OwnerId); Assert.AreEqual(employerId, order.PurchaserId); Assert.AreEqual(1, order.Adjustments.Count); var adjustment = order.Adjustments[0]; Assert.AreEqual(featurePack == JobAdFeaturePack.FeaturePack1 ? 11m : 22m, adjustment.AdjustedPrice); Assert.AreEqual(featurePack == JobAdFeaturePack.FeaturePack1 ? 10m : 20m, adjustment.InitialPrice); Assert.AreEqual(1, order.Items.Count); var item = order.Items[0]; Assert.AreEqual(featurePack == JobAdFeaturePack.FeaturePack1 ? 10m : 20m, item.Price); var product = _employerOrdersQuery.GetJobAdFeaturePackProduct(featurePack); Assert.AreEqual(product.Id, item.ProductId); return(order); }