Пример #1
0
        public void TestIsEmptyOperator()
        {
            WhamEngine.InitEngine();
            Assert.AreEqual("EMPTY", Template.Parse("{% if NOCOLLECTION is_empty %}EMPTY{% endif %}").Render());

            Assert.AreEqual("EMPTY", Template.Parse("{% if '' is_empty %}EMPTY{% endif %}").Render());
            Assert.AreEqual("", Template.Parse("{% if 'aaa' is_empty %}EMPTY{% endif %}").Render());
        }
Пример #2
0
        public void TestTrimTag()
        {
            WhamEngine.InitEngine();

            var t = Template.Parse("{% Trim %}   {% endTrim %}").Render();

            Assert.IsEmpty(t);

            t = Template.Parse("{% Trim %}  NOT EMPTY {% endTrim %}").Render();
            Assert.IsNotEmpty(t);
            Assert.AreEqual("NOT EMPTY", t);
        }
Пример #3
0
        public void TestIncludedPropertyTypes()
        {
            WhamEngine.InitEngine();
            var schemaDrop = Schemas.ShippingAddressDrop;
            var hash       = Hash.FromAnonymousObject(new { schema = schemaDrop });

            string res;

            res = Template.Parse("{% for propType in schema.IncludedProperties %}{{propType.Value | FullClassName : propType.Key}}, {% endfor %}").RenderWithErrors(hash);
            Assert.IsNotEmpty(res);
            Assert.AreEqual("string, string, string, string, TypesEnum?, ", res);
        }
Пример #4
0
        public void TestIncludedProperties()
        {
            WhamEngine.InitEngine();
            var schemaDrop = Schemas.ShippingAddressDrop;
            var hash       = Hash.FromAnonymousObject(new { schema = schemaDrop });

            string res;

            res = Template.Parse("{% for propName in schema.IncludedPropertyNames %}{{propName}}, {% endfor %}").RenderWithErrors(hash);
            Assert.IsNotEmpty(res);;
            Assert.AreEqual("line1, line2, city, country, type, ", res);
        }
Пример #5
0
        public void TestSchemaProperties()
        {
            WhamEngine.InitEngine();
            var schemaDrop = Schemas.ShippingAddressDrop;
            var hash       = Hash.FromAnonymousObject(new { schema = schemaDrop });

            string res;

            res = Template.Parse("{{schema.Title}}").Render(hash);
            Assert.AreEqual(schemaDrop.Title, res);

            res = Template.Parse("{{schema.BaseClassName}}").RenderWithErrors(hash);
            Assert.IsNotEmpty(res);
            Assert.IsFalse(res.Contains("BaseClassName"));
            Assert.AreEqual(schemaDrop.BaseClassName, res);
        }
Пример #6
0
        public void TestIsRegisterClassFilter()
        {
            WhamEngine.InitEngine();

            int wasCalled = 0;

            ClassNameFilters.RegisterClassCallback = new WeakReference <Action <string, string, object> >((input, name, data) =>
            {
                wasCalled++;
            });

            var rc1 = Template.Parse("{{ 'OK' | RegisterClass :'X' }}").Render();

            Assert.AreEqual("OK", rc1);
            Assert.AreEqual(1, wasCalled);

            Assert.AreEqual("OK", Template.Parse("{{ 'OK' | RegisterResource :'X' }}").Render());
            Assert.AreEqual(2, wasCalled);
        }
Пример #7
0
        public void TestGuidTag()
        {
            Guid guid;

            WhamEngine.InitEngine();

            var g1 = Template.Parse("{% Guid 'D' %}").Render();

            Assert.IsNotEmpty(g1);
            Assert.IsTrue(Guid.TryParseExact(g1, "D", out guid));

            var g2 = Template.Parse("{% Guid %}").Render();

            Assert.IsNotEmpty(g2);

            Assert.AreNotSame(g1, g2);

            g1 = Template.Parse("{% Guid 'N' %}").Render();
            Assert.IsNotEmpty(g1);
            Assert.IsTrue(Guid.TryParseExact(g1, "N", out guid));

            Assert.Throws <WhamException>(() => Template.Parse("{% Guid 'INVALID' %}").Render());
        }