public void AppliesToCommand_PutOnFootwearCommand_ReturnsTrue()
        {
            FootwearRule rule   = new FootwearRule();
            bool         result = rule.AppliesToCommand(typeof(PutOnFootwearCommand));

            Assert.IsTrue(result);
        }
        public void Evaluate_SocksNotOn_PantsNotOn_IsHot_ReturnsFalse()
        {
            Person       person = new Person();
            FootwearRule rule   = new FootwearRule();
            bool         result = rule.Evaluate(person, WeatherType.HOT);

            Assert.IsFalse(result);
        }
        public void Evaluate_SocksNotOn_PantsOn_IsHot_ReturnsTrue()
        {
            Person person = new Person();

            person.Clothing.Add(new ClothingItem("", ClothingType.Pants));
            FootwearRule rule   = new FootwearRule();
            bool         result = rule.Evaluate(person, WeatherType.HOT);

            Assert.IsTrue(result);
        }
        public void Evaluate_SocksOn_PantsNotOn_IsCold_ReturnsFalse()
        {
            Person person = new Person();

            person.Clothing.Add(new ClothingItem("", ClothingType.Socks));
            FootwearRule rule   = new FootwearRule();
            bool         result = rule.Evaluate(person, WeatherType.COLD);

            Assert.IsFalse(result);
        }