#include "OishiiPapa.hpp" #include "Order.hpp" #include #include TEST(OISHIIPAPA_TEST, check_papa_should_throw_exception_for_chest){ OishiiPapa ohpapa; ASSERT_THROW(ohpapa.Pickup(),std::out_of_range); } TEST(OISHIIPAPA_TEST, check_papa_should_throw_exception_for_pipeline){ OishiiPapa ohpapa; ASSERT_THROW(ohpapa.MakeDish(),std::out_of_range); } TEST(OISHIIPAPA_TEST, check_papa_should_take_care_of_pickup){ //Make Object Oishii Papa. OishiiPapa ohpapa; //Production. std::vector product1 = {Production::PorkBurger,Production::_NULL,Production::_NULL}; std::vector product2 = {Production::FishBurger,Production::_NULL,Production::_NULL}; std::vector product3 = {Production::BeefBurger,Production::_NULL,Production::_NULL}; std::vector product4 = {Production::_NULL,Production::Frenchfries,Production::_NULL}; std::vector product5 = {Production::_NULL,Production::Nugget,Production::_NULL}; std::vector product6 = {Production::_NULL,Production::Salad,Production::_NULL}; std::vector product7 = {Production::_NULL,Production::_NULL,Production::Spirit}; std::vector product8 = {Production::_NULL,Production::_NULL,Production::Cola}; std::vector product9 = {Production::_NULL,Production::_NULL,Production::CaramelMilktea}; std::vector product10 = {Production::_NULL,Production::_NULL,Production::Latte}; std::vector product11 = {Production::PorkBurger,Production::_NULL,Production::Cola}; std::vector product12 = {Production::FishBurger,Production::Frenchfries,Production::CaramelMilktea}; std::vector product13 = {Production::BeefBurger,Production::Nugget,Production::Cola}; std::vector product14 = {Production::FishBurger,Production::Salad,Production::Spirit}; std::vector product15 = {Production::BeefBurger,Production::Salad,Production::Latte}; std::vector product16 = {Production::PorkBurger,Production::Nugget,Production::Cola}; std::vector product17 = {Production::PorkBurger,Production::Frenchfries,Production::_NULL}; //Addtional Ingredients. std::vector additional1 = {Ingredients::Lattuce,Ingredients::Cheese}; std::vector additional2 = {Ingredients::PorkSteak,Ingredients::Cheese}; std::vector additional3 = {Ingredients::FishSteak,Ingredients::Lattuce}; std::vector additional4 = {Ingredients::BeefSteak,Ingredients::BeefSteak}; std::vector additional5 = {Ingredients::Lattuce,Ingredients::PorkSteak,Ingredients::Cheese}; std::vector additional6 = {Ingredients::Lattuce,Ingredients::PorkSteak,Ingredients::FishSteak}; std::vector additional7 = {Ingredients::Lattuce,Ingredients::BeefSteak}; std::vector additional8 = {}; //If larger. std::vector condition1 = {true, true}; std::vector condition2 = {true, false}; std::vector condition3 = {false, true}; std::vector condition4 = {false, false}; //Make order object. Order OrderList1(product1,additional1,condition4); Order OrderList2(product2,additional2,condition4); Order OrderList3(product3,additional3,condition4); Order OrderList4(product4,additional8,condition2); Order OrderList5(product5,additional8,condition2); Order OrderList6(product6,additional8,condition4); Order OrderList7(product7,additional8,condition4); Order OrderList8(product8,additional8,condition3); Order OrderList9(product9,additional8,condition4); Order OrderList10(product10,additional8,condition3); Order OrderList11(product11,additional1,condition3); Order OrderList12(product12,additional2,condition2); Order OrderList13(product13,additional3,condition1); Order OrderList14(product14,additional4,condition3); Order OrderList15(product15,additional5,condition3); Order OrderList16(product16,additional6,condition4); Order OrderList17(product16,additional7,condition1); Order OrderList18(product16,additional8,condition1); Order OrderList19(product15,additional8,condition3); Order OrderList20(product17,additional1,condition2); //Test. ohpapa.SendOrder(OrderList1); ohpapa.SendOrder(OrderList2); ohpapa.SendOrder(OrderList3); ohpapa.SendOrder(OrderList4); ohpapa.SendOrder(OrderList5); ohpapa.SendOrder(OrderList6); ohpapa.SendOrder(OrderList7); ohpapa.SendOrder(OrderList8); ohpapa.SendOrder(OrderList9); ohpapa.SendOrder(OrderList10); ohpapa.SendOrder(OrderList11); ohpapa.SendOrder(OrderList12); ohpapa.SendOrder(OrderList13); ohpapa.SendOrder(OrderList14); ohpapa.SendOrder(OrderList15); ohpapa.SendOrder(OrderList16); ohpapa.SendOrder(OrderList17); ohpapa.SendOrder(OrderList18); ohpapa.SendOrder(OrderList19); ohpapa.SendOrder(OrderList20); //Result. Package pack; MainDish pb(Production::PorkBurger); pb.AddIngredients(additional1); pack.SetMainDish(pb); pack.CountMoney(); auto tmp = ohpapa.Pickup(); ASSERT_EQ(tmp.GetMoney(),pack.GetMoney()); ASSERT_EQ(ohpapa.GetMoney(),pack.GetMoney()); } TEST(OISHIIPAPA_TEST, check_papa_should_take_care_of_pickup_part2){ //Make Object Oishii Papa. OishiiPapa ohpapa; //Production. std::vector product1 = {Production::PorkBurger,Production::_NULL,Production::_NULL}; std::vector product2 = {Production::FishBurger,Production::_NULL,Production::_NULL}; std::vector product3 = {Production::BeefBurger,Production::_NULL,Production::_NULL}; std::vector product4 = {Production::_NULL,Production::Frenchfries,Production::_NULL}; std::vector product5 = {Production::_NULL,Production::Nugget,Production::_NULL}; std::vector product6 = {Production::_NULL,Production::Salad,Production::_NULL}; std::vector product7 = {Production::_NULL,Production::_NULL,Production::Spirit}; std::vector product8 = {Production::_NULL,Production::_NULL,Production::Cola}; std::vector product9 = {Production::_NULL,Production::_NULL,Production::CaramelMilktea}; std::vector product10 = {Production::_NULL,Production::_NULL,Production::Latte}; std::vector product11 = {Production::PorkBurger,Production::_NULL,Production::Cola}; std::vector product12 = {Production::FishBurger,Production::Frenchfries,Production::CaramelMilktea}; std::vector product13 = {Production::BeefBurger,Production::Nugget,Production::Cola}; std::vector product14 = {Production::FishBurger,Production::Salad,Production::Spirit}; std::vector product15 = {Production::BeefBurger,Production::Salad,Production::Latte}; std::vector product16 = {Production::PorkBurger,Production::Nugget,Production::Cola}; std::vector product17 = {Production::PorkBurger,Production::Frenchfries,Production::_NULL}; //Addtional Ingredients. std::vector additional1 = {Ingredients::Lattuce,Ingredients::Cheese}; std::vector additional2 = {Ingredients::PorkSteak,Ingredients::Cheese}; std::vector additional3 = {Ingredients::FishSteak,Ingredients::Lattuce}; std::vector additional4 = {Ingredients::BeefSteak,Ingredients::BeefSteak}; std::vector additional5 = {Ingredients::Lattuce,Ingredients::PorkSteak,Ingredients::Cheese}; std::vector additional6 = {Ingredients::Lattuce,Ingredients::PorkSteak,Ingredients::FishSteak}; std::vector additional7 = {Ingredients::Lattuce,Ingredients::BeefSteak}; std::vector additional8 = {}; //If larger. std::vector condition1 = {true, true}; std::vector condition2 = {true, false}; std::vector condition3 = {false, true}; std::vector condition4 = {false, false}; //Make order object. Order OrderList1(product1,additional1,condition4); Order OrderList2(product2,additional2,condition4); Order OrderList3(product3,additional3,condition4); Order OrderList4(product4,additional8,condition2); Order OrderList5(product5,additional8,condition2); Order OrderList6(product6,additional8,condition4); Order OrderList7(product7,additional8,condition4); Order OrderList8(product8,additional8,condition3); Order OrderList9(product9,additional8,condition4); Order OrderList10(product10,additional8,condition3); Order OrderList11(product11,additional1,condition3); Order OrderList12(product12,additional2,condition2); Order OrderList13(product13,additional3,condition1); Order OrderList14(product14,additional4,condition3); Order OrderList15(product15,additional5,condition3); Order OrderList16(product16,additional6,condition4); Order OrderList17(product16,additional7,condition1); Order OrderList18(product16,additional8,condition1); Order OrderList19(product15,additional8,condition3); Order OrderList20(product17,additional1,condition2); //Test. ohpapa.SendOrder(OrderList1); ohpapa.SendOrder(OrderList2); ohpapa.SendOrder(OrderList3); ohpapa.SendOrder(OrderList4); ohpapa.SendOrder(OrderList5); ohpapa.SendOrder(OrderList6); ohpapa.SendOrder(OrderList7); ohpapa.SendOrder(OrderList8); ohpapa.SendOrder(OrderList9); ohpapa.SendOrder(OrderList10); ohpapa.SendOrder(OrderList11); ohpapa.SendOrder(OrderList12); ohpapa.SendOrder(OrderList13); ohpapa.SendOrder(OrderList14); ohpapa.SendOrder(OrderList15); ohpapa.SendOrder(OrderList16); ohpapa.SendOrder(OrderList17); ohpapa.SendOrder(OrderList18); ohpapa.SendOrder(OrderList19); ohpapa.SendOrder(OrderList20); //Result. ohpapa.Pickup(); ohpapa.Pickup(); ohpapa.Pickup(); ohpapa.Pickup(); ohpapa.Pickup(); ohpapa.Pickup(); ohpapa.Pickup(); ohpapa.Pickup(); ohpapa.Pickup(); ohpapa.Pickup(); ohpapa.Pickup(); ohpapa.Pickup(); ohpapa.Pickup(); ohpapa.Pickup(); ohpapa.Pickup(); ohpapa.Pickup(); ohpapa.Pickup(); ohpapa.Pickup(); ohpapa.Pickup(); ohpapa.Pickup(); ASSERT_EQ(ohpapa.GetMoney(),2317); }