public void SaveMembershipOrderShouldPersistAnOrderAndReturnTheId()
        {
            var membershipOffer = new MembershipOffer();

            membershipOffer.Id = 1;

            var membershipOrder = new MembershipOrder();

            membershipOrder.FirstName = "firstname";
            membershipOrder.LastName = "lastname";
            membershipOrder.EmailAddress = "*****@*****.**";
            membershipOrder.DateOfBirth = new DateTime(1980, 1, 1);
            membershipOrder.CreditCardNumber = "4444444444444";
            membershipOrder.CreditCardType = CreditCardType.Visa;
            membershipOrder.MembershipOffer = membershipOffer;
            membershipOrder.DateCreated = new DateTime(2000, 1, 1);

            var newOrderId = _orderRepository.SaveMembershipOrder(membershipOrder);

            Assert.That(newOrderId, Is.Not.EqualTo(0));
            Assert.That(newOrderId, Is.EqualTo(membershipOrder.OrderId));

            var database = Database.Open("IntegrationTests.Properties.Settings.TDDWithMVCConnectionString");

            var insertedOrder = database.QuerySingle("SELECT * FROM MembershipOrder WHERE Id = @0", newOrderId);

            Assert.AreEqual(insertedOrder.FirstName, "firstname");
            Assert.AreEqual(insertedOrder.LastName, "lastname");
            Assert.AreEqual(insertedOrder.EmailAddress, "*****@*****.**");
            Assert.AreEqual(insertedOrder.DateOfBirth, new DateTime(1980, 1, 1));
            Assert.AreEqual(insertedOrder.CreditCardNumber, "4444444444444");
            Assert.AreEqual(insertedOrder.CreditCardTypeCode, CreditCardType.Visa.Code);
            Assert.AreEqual(insertedOrder.MembershipOfferId, membershipOffer.Id);
            Assert.AreEqual(insertedOrder.DateCreated, new DateTime(2000, 1, 1));
        }
        public void HydrateIndexModelShouldSetTheCreditCardTypesAndMembershipOptions()
        {
            var indexModel = new IndexModel();

            var membershipOffers = new MembershipOffer[0];

            _mockOrderRepository.Setup(
                repos => repos.GetAllActiveMembershipOffers())
                .Returns(membershipOffers);

            var membershipOptionModels = new MembershipOptionModel[0];

            _mockIndexModelMapper.Setup(
                mapper => mapper.MapDomainToModels(
                    membershipOffers))
                .Returns(membershipOptionModels);

            var selectListItems = new SelectListItem[0];

            _mockCreditCardListItemMapper.Setup(
                mapper => mapper.MapCreditCardsToListItems(
                    It.IsAny<CreditCardType[]>()))
                .Returns(selectListItems);

            _indexModelRepository.HydrateIndexModel(
                indexModel);

            Assert.That(indexModel.MembershipOptions, Is.EqualTo(membershipOptionModels));
            Assert.That(indexModel.CreditCardTypes, Is.EqualTo(selectListItems));
        }
示例#3
0
        public MembershipOffer GetMembershipOfferById(int id)
        {
            var membershipOffer = new MembershipOffer();

            RunDatabaseOperation(
                database =>
                {
                    var membershipOfferData = database.QuerySingle("SELECT * FROM MembershipOffer WHERE Id = @0", id);

                    MapQueryToMembershipOffer(membershipOffer, membershipOfferData);
                });

            return membershipOffer;
        }
示例#4
0
        public MembershipOptionModel[] MapDomainToModels(
            MembershipOffer[] membershipOffers)
        {
            var membershipOptionModels = new List<MembershipOptionModel>();

            foreach (var allActiveMembershipOffer in membershipOffers)
            {
                var membershipOptionModel = new MembershipOptionModel
                {
                    Id = allActiveMembershipOffer.Id,
                    Name = (allActiveMembershipOffer.ExternalName + " - " + allActiveMembershipOffer.Price.ToString("$###,###,##0"))
                };

                membershipOptionModels.Add(membershipOptionModel);
            }

            return membershipOptionModels.ToArray();
        }
        public MembershipOffer[] GetAllActiveMembershipOffers()
        {
            var membershipOffer000 = new MembershipOffer();

            membershipOffer000.Id = 1;
            membershipOffer000.InternalName = "MEM53158813";
            membershipOffer000.ExternalName = "Highfaluting Membership 1 Year";
            membershipOffer000.DiscountPrice = 59;
            membershipOffer000.Price = 99;
            membershipOffer000.IsActive = true;
            membershipOffer000.TermInMonths = 12;
            membershipOffer000.TermInYears = 1;

            var membershipOffer001 = new MembershipOffer();

            membershipOffer001.Id = 2;
            membershipOffer001.InternalName = "MEM0876443";
            membershipOffer001.ExternalName = "Highfaluting Membership 2 Years";
            membershipOffer001.DiscountPrice = 159;
            membershipOffer001.Price = 198;
            membershipOffer001.IsActive = true;
            membershipOffer001.TermInMonths = 24;
            membershipOffer001.TermInYears = 2;

            var membershipOffer002 = new MembershipOffer();

            membershipOffer002.Id = 3;
            membershipOffer002.InternalName = "MEM6235499";
            membershipOffer002.ExternalName = "Highfaluting Membership 3 Years";
            membershipOffer002.DiscountPrice = 209;
            membershipOffer002.Price = 259;
            membershipOffer002.IsActive = true;
            membershipOffer002.TermInMonths = 36;
            membershipOffer002.TermInYears = 3;

            var membershipOffers = new MembershipOffer[3];

            membershipOffers[0] = membershipOffer000;
            membershipOffers[1] = membershipOffer001;
            membershipOffers[2] = membershipOffer002;

            return membershipOffers;
        }
        public MembershipOffer GetMembershipOfferById(int id)
        {
            if (id == 1)
            {
                var membershipOffer000 = new MembershipOffer();

                membershipOffer000.Id = 1;
                membershipOffer000.InternalName = "MEM53158813";
                membershipOffer000.ExternalName = "Highfaluting Membership 1 Year";
                membershipOffer000.DiscountPrice = 59;
                membershipOffer000.Price = 99;
                membershipOffer000.IsActive = true;
                membershipOffer000.TermInMonths = 12;
                membershipOffer000.TermInYears = 1;

                return membershipOffer000;
            }

            return null;
        }
示例#7
0
        public MembershipOffer[] GetAllActiveMembershipOffers()
        {
            var membershipOffers = new List<MembershipOffer>();

            RunDatabaseOperation(
                database =>
                    {
                        var membershipOfferDatas = database.Query("SELECT * FROM MembershipOffer");

                        foreach (var membershipOfferData in membershipOfferDatas)
                        {
                            var membershipOffer = new MembershipOffer();

                            MapQueryToMembershipOffer(membershipOffer, (object) membershipOfferData);

                            membershipOffers.Add(membershipOffer);
                        }
                    });

            return membershipOffers.ToArray();
        }
示例#8
0
 private void MapQueryToMembershipOffer(MembershipOffer membershipOffer, dynamic membershipOfferData)
 {
     membershipOffer.Id = membershipOfferData.Id;
     membershipOffer.InternalName = membershipOfferData.InternalName;
     membershipOffer.ExternalName = membershipOfferData.ExternalName;
     membershipOffer.DiscountPrice = membershipOfferData.DiscountPrice;
     membershipOffer.Price = membershipOfferData.Price;
     membershipOffer.IsActive = membershipOfferData.IsActive;
     membershipOffer.TermInMonths = membershipOfferData.TermInMonths;
     membershipOffer.TermInYears = membershipOfferData.TermInYears;
 }