예제 #1
0
        public void Cunstructor_ShouldReturnTheRightDiamondID()
        {
            //Arrange
            var price = Tests.NUMBER_THAT_IS_ASSERTED_WITH_BUT_HAS_NO_MEANING;
            //Act
            var cartItem = new CustomJewelCartItem(Tests.FAKE_DIAMOND_REPOSITORY_FIRST_ITEM_ID,
                                                   Tests.FAKE_JEWELRY_REPOSITORY_FIRST_ITEM_ID,
                                                   Tests.STRING_THAT_HAS_NO_MEANING_IN_THIS_CONTEXT, JewelMediaType.WhiteGold, price);

            //Assert

            cartItem.DiamondID.Should().Be(Tests.FAKE_DIAMOND_REPOSITORY_FIRST_ITEM_ID);
        }
예제 #2
0
        public void Cunstructor_ShouldReturnTheRightIDWhichIsProducedByPrimeMultiplicationOfTheDiamondAndSettingIDs()
        {
            //Arrange
            var price = Tests.NUMBER_THAT_IS_ASSERTED_WITH_BUT_HAS_NO_MEANING;
            //Act
            var cartItem = new CustomJewelCartItem(Tests.FAKE_DIAMOND_REPOSITORY_FIRST_ITEM_ID,
                                                   Tests.FAKE_JEWELRY_REPOSITORY_FIRST_ITEM_ID,
                                                   Tests.STRING_THAT_HAS_NO_MEANING_IN_THIS_CONTEXT, JewelMediaType.WhiteGold, price);

            //Assert

            cartItem.ID.Should().Be(Tests.FAKE_DIAMOND_REPOSITORY_FIRST_ITEM_ID * 3 +
                                    Tests.FAKE_JEWELRY_REPOSITORY_FIRST_ITEM_ID * 7);
        }
예제 #3
0
        protected override List <ICartItem> ResolveCore(acc_ORDERS source)
        {
            try
            {
                var cartItems = new List <ICartItem>();

                var jewelItems = source.acc_JEWELRY_ORDER_ITEMS.ToList();
                foreach (var jewelItem in jewelItems)
                {
                    var dbJewel       = jewelRepository.GetJewelByID(jewelItem.Item_id);
                    var jewelCartItem = new JewelCartItem(jewelItem.Item_id, (JewelMediaType)jewelItem.metal, (decimal)dbJewel.Price);

                    jewelCartItem.SetSize(jewelItem.jewelsize);

                    cartItems.Add(jewelCartItem);
                }

                var diamondItems = source.acc_DIAMOND_ORDER_ITEMS.ToList();
                foreach (var diamondItem in diamondItems)
                {
                    var dbDiamond       = diamondRepository.GetDiamondByID(diamondItem.Item_id);
                    var diamondCartItem = new DiamondCartItem(diamondItem.Item_id, dbDiamond.Price);
                    cartItems.Add(diamondCartItem);
                }

                var customJewelItems = source.acc_CUSTOMJEWEL_ORDER_ITEMS.ToList();

                foreach (var customJewelItem in customJewelItems)
                {
                    var dbsetting = jewelRepository.GetJewelByID(customJewelItem.Setting_id);
                    var dbdiamond = diamondRepository.GetDiamondByID(customJewelItem.Diamond_id);

                    var customJewelCartItem = new CustomJewelCartItem(customJewelItem.Diamond_id,
                                                                      customJewelItem.Setting_id, customJewelItem.size, JewelMediaType.WhiteGold,
                                                                      dbdiamond.Price + (decimal)dbsetting.Price);


                    cartItems.Add(customJewelCartItem);
                }

                return(cartItems);
            }
            catch (Exception ex)
            {
                throw new Exception("When asked to convert from a db order object to a Order POCO:\r\n ordernumber=" + source.OrderNumber + "\r\n" + " an error occured:" + ex.Message);
            }
        }
예제 #4
0
        public void Cunstructor_ShouldReturnTheRightMediaTypeWhenYellowGold()
        {
            //Arrange
            var price = Tests.NUMBER_THAT_IS_ASSERTED_WITH_BUT_HAS_NO_MEANING;



            //Act
            var cartItem = new CustomJewelCartItem(Tests.FAKE_DIAMOND_REPOSITORY_FIRST_ITEM_ID,
                                                   Tests.FAKE_JEWELRY_REPOSITORY_FIRST_ITEM_ID,
                                                   Tests.STRING_THAT_IS_ASSERTED_BUT_HAS_NO_MEANING,
                                                   JewelMediaType.YellowGold, price);

            //Assert


            cartItem.MediaType.Should().Be(JewelMediaType.YellowGold);
        }
예제 #5
0
        public void Cunstructor_ShouldUpdateTheSize()
        {
            //Arrange
            var price    = Tests.NUMBER_THAT_IS_ASSERTED_WITH_BUT_HAS_NO_MEANING;
            var cartItem = new CustomJewelCartItem(Tests.FAKE_DIAMOND_REPOSITORY_FIRST_ITEM_ID,
                                                   Tests.FAKE_JEWELRY_REPOSITORY_FIRST_ITEM_ID,
                                                   Tests.STRING_THAT_IS_ASSERTED_BUT_HAS_NO_MEANING, JewelMediaType.WhiteGold, price);


            //Act
            cartItem.SetSize("8");
            //Assert



            var size = cartItem.GetSize();

            size.Should().Be("8");
        }
예제 #6
0
        public static CustomJewelCartItem FakeCustomJewelCartItem(int diamondid, int settingid, string size, JewelMediaType mediaType, decimal price)
        {
            var cartItem = new CustomJewelCartItem(diamondid, settingid, size, mediaType, price);

            return(cartItem);
        }