public void EvaluatedCustomVariable_Constructor_Sets_Properties_Correctly()
        {
            var evaluated = new EvaluatedCustomVariable("name", () => "value");

            Assert.AreEqual("name", evaluated.Name);
            Assert.AreEqual("value", evaluated.Value);
        }
        public void EvaluatedCustomVariable_Evaluates_Every_Time_Valued_Accessed()
        {
            var evaluationCount = 0;
            var evaluated = new EvaluatedCustomVariable("name", () => (++evaluationCount).ToString(CultureInfo.InvariantCulture));

            Assert.AreEqual("name", evaluated.Name);
            Assert.AreEqual("1", evaluated.Value);
            Assert.AreEqual("2", evaluated.Value);
            Assert.AreEqual("3", evaluated.Value);
        }
        public void EvaluatedCustomVariable_Evaluates_Value_Every_Time()
        {
            var count = 0;
            Func<string> countFunction = () => { count++; return count.ToString(CultureInfo.InvariantCulture); };

            var evaluatedCustomVariable = new EvaluatedCustomVariable("name", countFunction);

            Assert.AreEqual("1", evaluatedCustomVariable.Value);
            Assert.AreEqual("2", evaluatedCustomVariable.Value);
            Assert.AreEqual("3", evaluatedCustomVariable.Value);
        }