FruitShop.Test.Caisse.AddFruit C# (CSharp) Method

AddFruit() private method

private AddFruit ( string p ) : int
p string
return int
        internal int AddFruit(string p)
        {
            string[] fruits = p.Split(',');

            foreach (var fruit in fruits)
            {
                bool isFamillePomme = false;

                switch (fruit.Trim().ToLower())
                {
                    case "pomme":
                        isFamillePomme = true;
                        _qtePomme++;
                        _qteFamillePomme++;
                        _panier += 100;
                        break;

                    case "apple":
                        isFamillePomme = true;
                        _qteApple++;
                        _qteFamillePomme++;
                        if ((_qteApple != 0) && (_qteApple % 3 == 0))
                        {
                            // 3 pour le prix de 2
                        }
                        else
                        {
                            _panier += 100;
                        }

                        break;

                    case "mele":
                        isFamillePomme = true;
                        _qteMele++;
                        _qteFamillePomme++;
                        if ((_qteMele != 0) && (_qteMele % 2 == 0))
                        {
                            // 2 pour le prix d'1
                        }
                        else
                        {
                            _panier += 100;
                        }
                        break;
                    case "banane":

                        _qteBanane++;

                        if ((_qteBanane != 0) && (_qteBanane % 2 == 0))
                        {
                            // 2e banane offerte, merci JC.
                        }
                        else
                        {
                            _panier += 150;
                        }

                        break;
                    case "cerise":
                        _panier += 75;
                        _qteCerise++;

                        if ((_qteCerise != 0) && (_qteCerise % 2 == 0))
                        {
                            _panier = _panier - _reducCerise;
                        }

                        break;
                    default:
                        throw (new Exception("NO DEFAULT EXCEPTION"));
                }

                if (isFamillePomme)
                {
                    if ((_qteFamillePomme != 0) && (_qteFamillePomme % 4 == 0))
                    {
                        _panier = _panier - _reducFamillePomme;
                    }
                }

                var qteFruits = _qteBanane+_qteCerise+_qteFamillePomme;
                if ((qteFruits != 0) && (qteFruits % 5 == 0))
                {
                    _panier = _panier - _reduc5Fruits;
                }
            }

            return _panier;
        }

Usage Example

Exemplo n.º 1
0
 public void WhenAddTwoCeriseApplyDiscount()
 {
     var caisse = new Caisse();
     int panier = caisse.AddFruit("Cerise");
     panier = caisse.AddFruit("Cerise");
     Assert.AreEqual(130, panier);
 }
All Usage Examples Of FruitShop.Test.Caisse::AddFruit
Caisse