Пример #1
0
        public void Does_truthy_falsy_conditional_logic_evaluate_correctly(string template, string expected)
        {
            //given
            TemplateEngine ngin = new TemplateEngine(template);

            ngin.TrimWhitespace = true;

            int        idx          = 0;
            Func <int> GetNextIndex = () => idx++;

            Action ResetIndex = () => idx = 0;

            ngin.LambdaRepo.Register(nameof(GetNextIndex), GetNextIndex);
            ngin.LambdaRepo.Register(nameof(ResetIndex), ResetIndex);

            bool[] data = new bool[20];
            data[0]  = ngin.IsTrue(null);           //false;
            data[1]  = ngin.IsTrue(1.00F);          //true;
            data[2]  = ngin.IsTrue(1U);             //true;
            data[3]  = ngin.IsTrue(0.00F);          //false;
            data[4]  = ngin.IsTrue(0);              //false;
            data[5]  = ngin.IsTrue(string.Empty);   //false;
            data[6]  = ngin.IsTrue(new object[0]);  //false;
            data[7]  = ngin.IsTrue(new object[1]);  //true;
            data[8]  = ngin.IsTrue(true);           //true;
            data[9]  = ngin.IsTrue(false);          //false;
            data[10] = ngin.IsTrue('\0');           //false;
            data[11] = ngin.IsTrue('t');            //true;
            data[12] = ngin.IsTrue('f');            //true;
            data[13] = ngin.IsTrue((decimal)1.111); //true;
            data[14] = ngin.IsTrue((decimal)0.000); //false;
            data[15] = ngin.IsTrue("\0");           //false;
            data[16] = ngin.IsTrue("f");            //true;
            data[17] = ngin.IsTrue("t");            //true;
            data[18] = ngin.IsTrue("false");        //true;
            data[19] = ngin.IsTrue("hello");        //true;

            //when
            string actual = ngin.Merge(data);

            //then
            Assert.Equal(expected, actual);
        }