public void Can_ChangeQuality()
        {
            //Arrange
            QualityBasedConditionChanger qualityChanger = new QualityBasedConditionChanger();
            var NewGlass = new TestGlass()
            {
                Quality = 100
            };
            var GoodGlass = new TestGlass()
            {
                Quality = 80
            };
            var DamagedGlass = new TestGlass()
            {
                Quality = 50
            };
            var BrokenGlass = new TestGlass()
            {
                Quality = 20
            };

            //Act
            qualityChanger.ChangeCondition(NewGlass);
            qualityChanger.ChangeCondition(GoodGlass);
            qualityChanger.ChangeCondition(DamagedGlass);
            qualityChanger.ChangeCondition(BrokenGlass);

            //Assert
            Assert.AreEqual("New", NewGlass.Condition);
            Assert.AreEqual("Good", GoodGlass.Condition);
            Assert.AreEqual("Damaged", DamagedGlass.Condition);
            Assert.AreEqual("Broken", BrokenGlass.Condition);
        }
        public void Can_Check_Quality()
        {
            //Arrange
            IConditionChanger changer   = new QualityBasedConditionChanger();
            var       qualityController = new QualityControl();
            TestGlass goodQualityGlass  = new TestGlass()
            {
                Quality = 100, Condition = "New"
            };
            TestGlass brokenGlass = new TestGlass()
            {
                Quality = 15, Condition = "Broken"
            };
            List <TestGlass> listOfGlassware = new List <TestGlass>()
            {
                goodQualityGlass, brokenGlass
            };

            //Act
            qualityController.CheckQuality(goodQualityGlass);
            //Assert
            Assert.IsFalse(qualityController.QualityControlFailed);

            //Act
            qualityController.CheckQuality(brokenGlass);
            //Assert
            Assert.IsTrue(qualityController.QualityControlFailed);

            //Act
            qualityController.CheckQuality(listOfGlassware);
            //Assert
            Assert.IsTrue(qualityController.QualityControlFailed);
        }