From 7d87868033496bd9b410db4480da40bcab01b15a Mon Sep 17 00:00:00 2001 From: Alexandr Chernysh Date: Thu, 29 Nov 2018 10:58:43 +0200 Subject: [PATCH 01/18] First red --- tdd_intro/homework/05_coffee/test.cpp | 37 +++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/tdd_intro/homework/05_coffee/test.cpp b/tdd_intro/homework/05_coffee/test.cpp index 919530d9..6a3a4f6f 100644 --- a/tdd_intro/homework/05_coffee/test.cpp +++ b/tdd_intro/homework/05_coffee/test.cpp @@ -30,3 +30,40 @@ class ISourceOfIngredients virtual void AddChocolate(int gram) = 0; virtual void AddCream(int gram) = 0; }; + +class MockSourceOfIngredients : public ISourceOfIngredients +{ +public: + MOCK_METHOD1(SetCupSize, void(int gram)); + MOCK_METHOD2(AddWater, void(int gram, int temperature)); + MOCK_METHOD1(AddSugar, void(int gram)); + MOCK_METHOD1(AddCoffee, void(int gram)); + MOCK_METHOD1(AddMilk, void(int gram)); + MOCK_METHOD1(AddMilkFoam, void(int gram)); + MOCK_METHOD1(AddChocolate, void(int gram)); + MOCK_METHOD1(AddCream, void(int gram)); +}; + +class CofffeeMachine +{ +public: + explicit CofffeeMachine(ISourceOfIngredients* ingredients) + : m_ingredients(ingredients){} + + void PrepareAmericano() + { + } + +private: + ISourceOfIngredients* m_ingredients; +}; + +TEST(CoffeeMashine, TestWaterTempAmericano) +{ + MockSourceOfIngredients ingredients; + CofffeeMachine machine(&ingredients); + + EXPECT_CALL(ingredients, AddWater(testing::_, 80)); + + machine.PrepareAmericano(); +} From 72ddd169d5ad007ee747b3fadc39367173a4e25d Mon Sep 17 00:00:00 2001 From: Alexandr Chernysh Date: Thu, 29 Nov 2018 10:59:56 +0200 Subject: [PATCH 02/18] Green --- tdd_intro/homework/05_coffee/test.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tdd_intro/homework/05_coffee/test.cpp b/tdd_intro/homework/05_coffee/test.cpp index 6a3a4f6f..1eda5e3b 100644 --- a/tdd_intro/homework/05_coffee/test.cpp +++ b/tdd_intro/homework/05_coffee/test.cpp @@ -52,6 +52,7 @@ class CofffeeMachine void PrepareAmericano() { + m_ingredients->AddWater(0, 60); } private: @@ -63,7 +64,7 @@ TEST(CoffeeMashine, TestWaterTempAmericano) MockSourceOfIngredients ingredients; CofffeeMachine machine(&ingredients); - EXPECT_CALL(ingredients, AddWater(testing::_, 80)); + EXPECT_CALL(ingredients, AddWater(testing::_, 60)); machine.PrepareAmericano(); } From e45ffda0cdece1ca3f072bc305393c85cf437e96 Mon Sep 17 00:00:00 2001 From: Alexandr Chernysh Date: Thu, 29 Nov 2018 11:02:03 +0200 Subject: [PATCH 03/18] Refactoring --- tdd_intro/homework/05_coffee/test.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/tdd_intro/homework/05_coffee/test.cpp b/tdd_intro/homework/05_coffee/test.cpp index 1eda5e3b..96affe79 100644 --- a/tdd_intro/homework/05_coffee/test.cpp +++ b/tdd_intro/homework/05_coffee/test.cpp @@ -44,6 +44,8 @@ class MockSourceOfIngredients : public ISourceOfIngredients MOCK_METHOD1(AddCream, void(int gram)); }; +const static size_t s_americanoWaterTemp = 60; + class CofffeeMachine { public: @@ -52,19 +54,18 @@ class CofffeeMachine void PrepareAmericano() { - m_ingredients->AddWater(0, 60); + m_ingredients->AddWater(0, s_americanoWaterTemp); } private: ISourceOfIngredients* m_ingredients; }; -TEST(CoffeeMashine, TestWaterTempAmericano) +TEST(CoffeeMashine, TestAmericanoWaterTemp) { MockSourceOfIngredients ingredients; CofffeeMachine machine(&ingredients); - EXPECT_CALL(ingredients, AddWater(testing::_, 60)); - + EXPECT_CALL(ingredients, AddWater(testing::_, s_americanoWaterTemp)); machine.PrepareAmericano(); } From 9d8e4266624faea6fc12fe655c5eabe3b05cd44b Mon Sep 17 00:00:00 2001 From: Alexandr Chernysh Date: Thu, 29 Nov 2018 11:36:25 +0200 Subject: [PATCH 04/18] Red --- tdd_intro/homework/05_coffee/test.cpp | 31 ++++++++++++++++++++++++--- 1 file changed, 28 insertions(+), 3 deletions(-) diff --git a/tdd_intro/homework/05_coffee/test.cpp b/tdd_intro/homework/05_coffee/test.cpp index 96affe79..4d7ab87b 100644 --- a/tdd_intro/homework/05_coffee/test.cpp +++ b/tdd_intro/homework/05_coffee/test.cpp @@ -46,15 +46,24 @@ class MockSourceOfIngredients : public ISourceOfIngredients const static size_t s_americanoWaterTemp = 60; +enum class CupSize +{ + Little = 0, + Big +}; + class CofffeeMachine { public: explicit CofffeeMachine(ISourceOfIngredients* ingredients) : m_ingredients(ingredients){} - void PrepareAmericano() + void PrepareAmericano(CupSize size) { - m_ingredients->AddWater(0, s_americanoWaterTemp); + if(size == CupSize::Little) + { + m_ingredients->AddWater(50, s_americanoWaterTemp); + } } private: @@ -67,5 +76,21 @@ TEST(CoffeeMashine, TestAmericanoWaterTemp) CofffeeMachine machine(&ingredients); EXPECT_CALL(ingredients, AddWater(testing::_, s_americanoWaterTemp)); - machine.PrepareAmericano(); + machine.PrepareAmericano(CupSize::Little); +} + +TEST(CoffeeMashine, TestAmericanoWaterRatioLittleCup) +{ + MockSourceOfIngredients ingredients; + CofffeeMachine machine(&ingredients); + + size_t watter; + EXPECT_CALL(ingredients, AddWater(testing::_, testing::_)).WillOnce(testing::SaveArg<0>(&watter)); + + size_t coffee; + EXPECT_CALL(ingredients, AddCoffee(testing::_)).WillOnce(testing::SaveArg<0>(&coffee)); + + machine.PrepareAmericano(CupSize::Little); + + EXPECT_EQ(coffee / 2, watter); } From 76f9bd08503cfa2c65c304a962bebb70e8a1ff09 Mon Sep 17 00:00:00 2001 From: Alexandr Chernysh Date: Thu, 29 Nov 2018 11:37:19 +0200 Subject: [PATCH 05/18] Green --- tdd_intro/homework/05_coffee/test.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/tdd_intro/homework/05_coffee/test.cpp b/tdd_intro/homework/05_coffee/test.cpp index 4d7ab87b..66303249 100644 --- a/tdd_intro/homework/05_coffee/test.cpp +++ b/tdd_intro/homework/05_coffee/test.cpp @@ -63,6 +63,7 @@ class CofffeeMachine if(size == CupSize::Little) { m_ingredients->AddWater(50, s_americanoWaterTemp); + m_ingredients->AddCoffee(100); } } From 2d579c8b1c0c8fca72c077f477cb3c04694247c9 Mon Sep 17 00:00:00 2001 From: Alexandr Chernysh Date: Thu, 29 Nov 2018 11:39:01 +0200 Subject: [PATCH 06/18] Refactoring + red --- tdd_intro/homework/05_coffee/test.cpp | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/tdd_intro/homework/05_coffee/test.cpp b/tdd_intro/homework/05_coffee/test.cpp index 66303249..873dad72 100644 --- a/tdd_intro/homework/05_coffee/test.cpp +++ b/tdd_intro/homework/05_coffee/test.cpp @@ -60,7 +60,7 @@ class CofffeeMachine void PrepareAmericano(CupSize size) { - if(size == CupSize::Little) + if (size == CupSize::Little) { m_ingredients->AddWater(50, s_americanoWaterTemp); m_ingredients->AddCoffee(100); @@ -86,12 +86,24 @@ TEST(CoffeeMashine, TestAmericanoWaterRatioLittleCup) CofffeeMachine machine(&ingredients); size_t watter; - EXPECT_CALL(ingredients, AddWater(testing::_, testing::_)).WillOnce(testing::SaveArg<0>(&watter)); - size_t coffee; + EXPECT_CALL(ingredients, AddWater(testing::_, testing::_)).WillOnce(testing::SaveArg<0>(&watter)); EXPECT_CALL(ingredients, AddCoffee(testing::_)).WillOnce(testing::SaveArg<0>(&coffee)); machine.PrepareAmericano(CupSize::Little); + EXPECT_EQ(coffee / 2, watter); +} + +TEST(CoffeeMashine, TestAmericanoWaterRatioBigCup) +{ + MockSourceOfIngredients ingredients; + CofffeeMachine machine(&ingredients); + + size_t watter; + size_t coffee; + EXPECT_CALL(ingredients, AddWater(testing::_, testing::_)).WillOnce(testing::SaveArg<0>(&watter)); + EXPECT_CALL(ingredients, AddCoffee(testing::_)).WillOnce(testing::SaveArg<0>(&coffee)); + machine.PrepareAmericano(CupSize::Big); EXPECT_EQ(coffee / 2, watter); } From f8b4301bdbe38d9c388db0d0c916905e5b4fa77e Mon Sep 17 00:00:00 2001 From: Alexandr Chernysh Date: Thu, 29 Nov 2018 11:50:42 +0200 Subject: [PATCH 07/18] Refactoring --- tdd_intro/homework/05_coffee/test.cpp | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/tdd_intro/homework/05_coffee/test.cpp b/tdd_intro/homework/05_coffee/test.cpp index 873dad72..b905fbe0 100644 --- a/tdd_intro/homework/05_coffee/test.cpp +++ b/tdd_intro/homework/05_coffee/test.cpp @@ -52,6 +52,16 @@ enum class CupSize Big }; +size_t GetCupSize(CupSize size) +{ + switch (size) { + case CupSize::Little: return 100; + case CupSize::Big: return 140; + default: + throw std::runtime_error("Undefined cup size"); + } +} + class CofffeeMachine { public: @@ -60,11 +70,11 @@ class CofffeeMachine void PrepareAmericano(CupSize size) { - if (size == CupSize::Little) - { - m_ingredients->AddWater(50, s_americanoWaterTemp); - m_ingredients->AddCoffee(100); - } + const size_t watterGram = GetCupSize(size) / 3; + m_ingredients->AddWater(watterGram, s_americanoWaterTemp); + + const size_t coffeeGram = watterGram * 2; + m_ingredients->AddCoffee(coffeeGram); } private: @@ -77,6 +87,7 @@ TEST(CoffeeMashine, TestAmericanoWaterTemp) CofffeeMachine machine(&ingredients); EXPECT_CALL(ingredients, AddWater(testing::_, s_americanoWaterTemp)); + EXPECT_CALL(ingredients, AddCoffee(testing::_)); machine.PrepareAmericano(CupSize::Little); } From 4f89152feeacab00cd0cdf40edf140e85738b4a2 Mon Sep 17 00:00:00 2001 From: Alexandr Chernysh Date: Thu, 29 Nov 2018 11:53:24 +0200 Subject: [PATCH 08/18] Red --- tdd_intro/homework/05_coffee/test.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/tdd_intro/homework/05_coffee/test.cpp b/tdd_intro/homework/05_coffee/test.cpp index b905fbe0..d576a148 100644 --- a/tdd_intro/homework/05_coffee/test.cpp +++ b/tdd_intro/homework/05_coffee/test.cpp @@ -118,3 +118,13 @@ TEST(CoffeeMashine, TestAmericanoWaterRatioBigCup) machine.PrepareAmericano(CupSize::Big); EXPECT_EQ(coffee / 2, watter); } + +TEST(CoffeeMashine, TestCappuccinoWatterTemp) +{ + MockSourceOfIngredients ingredients; + CofffeeMachine machine(&ingredients); + + EXPECT_CALL(ingredients, AddWater(testing::_, 80)); + EXPECT_CALL(ingredients, AddCoffee(testing::_)); + machine.PrepareAmericano(CupSize::Little); +} From 478e3db32552b4911570ca1000be57c6a37cacd7 Mon Sep 17 00:00:00 2001 From: Alexandr Chernysh Date: Thu, 29 Nov 2018 11:56:09 +0200 Subject: [PATCH 09/18] Green --- tdd_intro/homework/05_coffee/test.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/tdd_intro/homework/05_coffee/test.cpp b/tdd_intro/homework/05_coffee/test.cpp index d576a148..c9aaa3d8 100644 --- a/tdd_intro/homework/05_coffee/test.cpp +++ b/tdd_intro/homework/05_coffee/test.cpp @@ -68,7 +68,7 @@ class CofffeeMachine explicit CofffeeMachine(ISourceOfIngredients* ingredients) : m_ingredients(ingredients){} - void PrepareAmericano(CupSize size) + void PrepareAmericano(CupSize size = CupSize::Little) { const size_t watterGram = GetCupSize(size) / 3; m_ingredients->AddWater(watterGram, s_americanoWaterTemp); @@ -77,6 +77,11 @@ class CofffeeMachine m_ingredients->AddCoffee(coffeeGram); } + void PrepareCappuccino(CupSize size = CupSize::Little) + { + m_ingredients->AddWater(0, 80); + } + private: ISourceOfIngredients* m_ingredients; }; @@ -88,7 +93,7 @@ TEST(CoffeeMashine, TestAmericanoWaterTemp) EXPECT_CALL(ingredients, AddWater(testing::_, s_americanoWaterTemp)); EXPECT_CALL(ingredients, AddCoffee(testing::_)); - machine.PrepareAmericano(CupSize::Little); + machine.PrepareAmericano(); } TEST(CoffeeMashine, TestAmericanoWaterRatioLittleCup) @@ -125,6 +130,5 @@ TEST(CoffeeMashine, TestCappuccinoWatterTemp) CofffeeMachine machine(&ingredients); EXPECT_CALL(ingredients, AddWater(testing::_, 80)); - EXPECT_CALL(ingredients, AddCoffee(testing::_)); - machine.PrepareAmericano(CupSize::Little); + machine.PrepareCappuccino(); } From 686f0e0f3ad0604fa056e96ef262c7702c8c4526 Mon Sep 17 00:00:00 2001 From: Alexandr Chernysh Date: Thu, 29 Nov 2018 12:03:51 +0200 Subject: [PATCH 10/18] Refactoring --- tdd_intro/homework/05_coffee/test.cpp | 36 ++++++++++++++++++++++----- 1 file changed, 30 insertions(+), 6 deletions(-) diff --git a/tdd_intro/homework/05_coffee/test.cpp b/tdd_intro/homework/05_coffee/test.cpp index c9aaa3d8..bdfe5950 100644 --- a/tdd_intro/homework/05_coffee/test.cpp +++ b/tdd_intro/homework/05_coffee/test.cpp @@ -52,6 +52,12 @@ enum class CupSize Big }; +enum class DrinkType +{ + Americano = 0, + Cappuccino +}; + size_t GetCupSize(CupSize size) { switch (size) { @@ -68,7 +74,25 @@ class CofffeeMachine explicit CofffeeMachine(ISourceOfIngredients* ingredients) : m_ingredients(ingredients){} - void PrepareAmericano(CupSize size = CupSize::Little) + void Prepare(DrinkType drink, CupSize size = CupSize::Little) + { + switch (drink) + { + case DrinkType::Americano: + PrepareAmericano(size); + break; + + case DrinkType::Cappuccino: + PrepareCappuccino(size); + break; + + default: + throw std::runtime_error("Unknown dink"); + } + } + +private: + void PrepareAmericano(CupSize size) { const size_t watterGram = GetCupSize(size) / 3; m_ingredients->AddWater(watterGram, s_americanoWaterTemp); @@ -77,7 +101,7 @@ class CofffeeMachine m_ingredients->AddCoffee(coffeeGram); } - void PrepareCappuccino(CupSize size = CupSize::Little) + void PrepareCappuccino(CupSize size) { m_ingredients->AddWater(0, 80); } @@ -93,7 +117,7 @@ TEST(CoffeeMashine, TestAmericanoWaterTemp) EXPECT_CALL(ingredients, AddWater(testing::_, s_americanoWaterTemp)); EXPECT_CALL(ingredients, AddCoffee(testing::_)); - machine.PrepareAmericano(); + machine.Prepare(DrinkType::Americano); } TEST(CoffeeMashine, TestAmericanoWaterRatioLittleCup) @@ -106,7 +130,7 @@ TEST(CoffeeMashine, TestAmericanoWaterRatioLittleCup) EXPECT_CALL(ingredients, AddWater(testing::_, testing::_)).WillOnce(testing::SaveArg<0>(&watter)); EXPECT_CALL(ingredients, AddCoffee(testing::_)).WillOnce(testing::SaveArg<0>(&coffee)); - machine.PrepareAmericano(CupSize::Little); + machine.Prepare(DrinkType::Americano, CupSize::Little); EXPECT_EQ(coffee / 2, watter); } @@ -120,7 +144,7 @@ TEST(CoffeeMashine, TestAmericanoWaterRatioBigCup) EXPECT_CALL(ingredients, AddWater(testing::_, testing::_)).WillOnce(testing::SaveArg<0>(&watter)); EXPECT_CALL(ingredients, AddCoffee(testing::_)).WillOnce(testing::SaveArg<0>(&coffee)); - machine.PrepareAmericano(CupSize::Big); + machine.Prepare(DrinkType::Americano, CupSize::Big); EXPECT_EQ(coffee / 2, watter); } @@ -130,5 +154,5 @@ TEST(CoffeeMashine, TestCappuccinoWatterTemp) CofffeeMachine machine(&ingredients); EXPECT_CALL(ingredients, AddWater(testing::_, 80)); - machine.PrepareCappuccino(); + machine.Prepare(DrinkType::Cappuccino); } From 0a9c468231b03b4fe40a7b364ab9599d5399d733 Mon Sep 17 00:00:00 2001 From: Alexandr Chernysh Date: Thu, 29 Nov 2018 12:12:51 +0200 Subject: [PATCH 11/18] Red --- tdd_intro/homework/05_coffee/test.cpp | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/tdd_intro/homework/05_coffee/test.cpp b/tdd_intro/homework/05_coffee/test.cpp index bdfe5950..9144e1c1 100644 --- a/tdd_intro/homework/05_coffee/test.cpp +++ b/tdd_intro/homework/05_coffee/test.cpp @@ -45,6 +45,7 @@ class MockSourceOfIngredients : public ISourceOfIngredients }; const static size_t s_americanoWaterTemp = 60; +const static size_t s_cappuccinoWaterTemp = 80; enum class CupSize { @@ -103,7 +104,7 @@ class CofffeeMachine void PrepareCappuccino(CupSize size) { - m_ingredients->AddWater(0, 80); + m_ingredients->AddWater(0, s_cappuccinoWaterTemp); } private: @@ -153,6 +154,19 @@ TEST(CoffeeMashine, TestCappuccinoWatterTemp) MockSourceOfIngredients ingredients; CofffeeMachine machine(&ingredients); - EXPECT_CALL(ingredients, AddWater(testing::_, 80)); + EXPECT_CALL(ingredients, AddWater(testing::_, s_cappuccinoWaterTemp)); machine.Prepare(DrinkType::Cappuccino); } + +TEST(CoffeeMashine, TestCappuccinoMilkRatioLittleCup) +{ + MockSourceOfIngredients ingredients; + CofffeeMachine machine(&ingredients); + + size_t milkGram; + EXPECT_CALL(ingredients, AddWater(testing::_, testing::_)); + EXPECT_CALL(ingredients, AddMilk(testing::_)).WillOnce(testing::SaveArg<0>(&milkGram)); + machine.Prepare(DrinkType::Cappuccino, CupSize::Little); + + EXPECT_EQ(100 / 3, milkGram); +} From 937293d6c66a49cea9dbb5b552337d10c77f350a Mon Sep 17 00:00:00 2001 From: Alexandr Chernysh Date: Thu, 29 Nov 2018 12:17:01 +0200 Subject: [PATCH 12/18] Green --- tdd_intro/homework/05_coffee/test.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tdd_intro/homework/05_coffee/test.cpp b/tdd_intro/homework/05_coffee/test.cpp index 9144e1c1..909ba19f 100644 --- a/tdd_intro/homework/05_coffee/test.cpp +++ b/tdd_intro/homework/05_coffee/test.cpp @@ -105,6 +105,9 @@ class CofffeeMachine void PrepareCappuccino(CupSize size) { m_ingredients->AddWater(0, s_cappuccinoWaterTemp); + + const size_t cup_size = GetCupSize(size); + m_ingredients->AddMilk(cup_size / 3); } private: @@ -154,6 +157,7 @@ TEST(CoffeeMashine, TestCappuccinoWatterTemp) MockSourceOfIngredients ingredients; CofffeeMachine machine(&ingredients); + EXPECT_CALL(ingredients, AddMilk(testing::_)); EXPECT_CALL(ingredients, AddWater(testing::_, s_cappuccinoWaterTemp)); machine.Prepare(DrinkType::Cappuccino); } From 52fbc45c696565b8cace0898e9c91c94bd796596 Mon Sep 17 00:00:00 2001 From: Alexandr Chernysh Date: Thu, 29 Nov 2018 12:19:43 +0200 Subject: [PATCH 13/18] Refactoring + green test --- tdd_intro/homework/05_coffee/test.cpp | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/tdd_intro/homework/05_coffee/test.cpp b/tdd_intro/homework/05_coffee/test.cpp index 909ba19f..7b6c3efd 100644 --- a/tdd_intro/homework/05_coffee/test.cpp +++ b/tdd_intro/homework/05_coffee/test.cpp @@ -47,6 +47,9 @@ class MockSourceOfIngredients : public ISourceOfIngredients const static size_t s_americanoWaterTemp = 60; const static size_t s_cappuccinoWaterTemp = 80; +const static size_t s_cupSizeLittle = 100; +const static size_t s_cupSizeBig = 140; + enum class CupSize { Little = 0, @@ -62,8 +65,8 @@ enum class DrinkType size_t GetCupSize(CupSize size) { switch (size) { - case CupSize::Little: return 100; - case CupSize::Big: return 140; + case CupSize::Little: return s_cupSizeLittle; + case CupSize::Big: return s_cupSizeBig; default: throw std::runtime_error("Undefined cup size"); } @@ -172,5 +175,18 @@ TEST(CoffeeMashine, TestCappuccinoMilkRatioLittleCup) EXPECT_CALL(ingredients, AddMilk(testing::_)).WillOnce(testing::SaveArg<0>(&milkGram)); machine.Prepare(DrinkType::Cappuccino, CupSize::Little); - EXPECT_EQ(100 / 3, milkGram); + EXPECT_EQ(s_cupSizeLittle / 3, milkGram); +} + +TEST(CoffeeMashine, TestCappuccinoMilkRatioBigCup) +{ + MockSourceOfIngredients ingredients; + CofffeeMachine machine(&ingredients); + + size_t milkGram; + EXPECT_CALL(ingredients, AddWater(testing::_, testing::_)); + EXPECT_CALL(ingredients, AddMilk(testing::_)).WillOnce(testing::SaveArg<0>(&milkGram)); + machine.Prepare(DrinkType::Cappuccino, CupSize::Big); + + EXPECT_EQ(s_cupSizeBig / 3, milkGram); } From 585192a266fc36a2faa0216be6166f1e4650243f Mon Sep 17 00:00:00 2001 From: Alexandr Chernysh Date: Thu, 29 Nov 2018 12:21:51 +0200 Subject: [PATCH 14/18] Red --- tdd_intro/homework/05_coffee/test.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/tdd_intro/homework/05_coffee/test.cpp b/tdd_intro/homework/05_coffee/test.cpp index 7b6c3efd..1f6ee585 100644 --- a/tdd_intro/homework/05_coffee/test.cpp +++ b/tdd_intro/homework/05_coffee/test.cpp @@ -190,3 +190,15 @@ TEST(CoffeeMashine, TestCappuccinoMilkRatioBigCup) EXPECT_EQ(s_cupSizeBig / 3, milkGram); } + +TEST(CoffeeMashine, TestCappuccinoCoffeeRatio) +{ + MockSourceOfIngredients ingredients; + CofffeeMachine machine(&ingredients); + + size_t coffeeGram; + EXPECT_CALL(ingredients, AddCoffee(testing::_)).WillOnce(testing::SaveArg<0>(&coffeeGram)); + machine.Prepare(DrinkType::Cappuccino, CupSize::Little); + + EXPECT_EQ(s_cupSizeLittle / 3, coffeeGram); +} From 1eb0060bbcbe8170dfdd810e5a42bdf38af15be8 Mon Sep 17 00:00:00 2001 From: Alexandr Chernysh Date: Thu, 29 Nov 2018 12:26:26 +0200 Subject: [PATCH 15/18] Green --- tdd_intro/homework/05_coffee/test.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/tdd_intro/homework/05_coffee/test.cpp b/tdd_intro/homework/05_coffee/test.cpp index 1f6ee585..0703dbf4 100644 --- a/tdd_intro/homework/05_coffee/test.cpp +++ b/tdd_intro/homework/05_coffee/test.cpp @@ -111,6 +111,7 @@ class CofffeeMachine const size_t cup_size = GetCupSize(size); m_ingredients->AddMilk(cup_size / 3); + m_ingredients->AddCoffee(cup_size / 3); } private: From 1217963d57a005c87adbc360f1e9c4fb5791d94c Mon Sep 17 00:00:00 2001 From: Alexandr Chernysh Date: Thu, 29 Nov 2018 12:27:41 +0200 Subject: [PATCH 16/18] Red --- tdd_intro/homework/05_coffee/test.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/tdd_intro/homework/05_coffee/test.cpp b/tdd_intro/homework/05_coffee/test.cpp index 0703dbf4..d3e24e5a 100644 --- a/tdd_intro/homework/05_coffee/test.cpp +++ b/tdd_intro/homework/05_coffee/test.cpp @@ -203,3 +203,15 @@ TEST(CoffeeMashine, TestCappuccinoCoffeeRatio) EXPECT_EQ(s_cupSizeLittle / 3, coffeeGram); } + +TEST(CoffeeMashine, TestCappuccinoMilkFoamRatio) +{ + MockSourceOfIngredients ingredients; + CofffeeMachine machine(&ingredients); + + size_t gram; + EXPECT_CALL(ingredients, AddMilkFoam(testing::_)).WillOnce(testing::SaveArg<0>(&gram)); + machine.Prepare(DrinkType::Cappuccino, CupSize::Little); + + EXPECT_EQ(s_cupSizeLittle / 3, gram); +} From 8d048f666f3d3aa82076c77ffd3d34f89bc75231 Mon Sep 17 00:00:00 2001 From: Alexandr Chernysh Date: Thu, 29 Nov 2018 12:28:07 +0200 Subject: [PATCH 17/18] Green --- tdd_intro/homework/05_coffee/test.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/tdd_intro/homework/05_coffee/test.cpp b/tdd_intro/homework/05_coffee/test.cpp index d3e24e5a..fc5dc46a 100644 --- a/tdd_intro/homework/05_coffee/test.cpp +++ b/tdd_intro/homework/05_coffee/test.cpp @@ -112,6 +112,7 @@ class CofffeeMachine const size_t cup_size = GetCupSize(size); m_ingredients->AddMilk(cup_size / 3); m_ingredients->AddCoffee(cup_size / 3); + m_ingredients->AddMilkFoam(cup_size / 3); } private: From 1cd8ec1d1a1df83951875d5661cb1f283a259c54 Mon Sep 17 00:00:00 2001 From: Alexandr Chernysh Date: Thu, 29 Nov 2018 12:30:12 +0200 Subject: [PATCH 18/18] Some general refactoring --- tdd_intro/homework/05_coffee/test.cpp | 3 --- 1 file changed, 3 deletions(-) diff --git a/tdd_intro/homework/05_coffee/test.cpp b/tdd_intro/homework/05_coffee/test.cpp index fc5dc46a..519188e8 100644 --- a/tdd_intro/homework/05_coffee/test.cpp +++ b/tdd_intro/homework/05_coffee/test.cpp @@ -162,7 +162,6 @@ TEST(CoffeeMashine, TestCappuccinoWatterTemp) MockSourceOfIngredients ingredients; CofffeeMachine machine(&ingredients); - EXPECT_CALL(ingredients, AddMilk(testing::_)); EXPECT_CALL(ingredients, AddWater(testing::_, s_cappuccinoWaterTemp)); machine.Prepare(DrinkType::Cappuccino); } @@ -173,7 +172,6 @@ TEST(CoffeeMashine, TestCappuccinoMilkRatioLittleCup) CofffeeMachine machine(&ingredients); size_t milkGram; - EXPECT_CALL(ingredients, AddWater(testing::_, testing::_)); EXPECT_CALL(ingredients, AddMilk(testing::_)).WillOnce(testing::SaveArg<0>(&milkGram)); machine.Prepare(DrinkType::Cappuccino, CupSize::Little); @@ -186,7 +184,6 @@ TEST(CoffeeMashine, TestCappuccinoMilkRatioBigCup) CofffeeMachine machine(&ingredients); size_t milkGram; - EXPECT_CALL(ingredients, AddWater(testing::_, testing::_)); EXPECT_CALL(ingredients, AddMilk(testing::_)).WillOnce(testing::SaveArg<0>(&milkGram)); machine.Prepare(DrinkType::Cappuccino, CupSize::Big);