Esempio n. 1
0
        public void SimpleTemplateParseTest()
        {
            var customerId = Guid.NewGuid();

            var service = new Mock <IOrganizationService>();

            service.Setup(s => s.Execute(It.IsAny <RetrieveAllEntitiesRequest>()))
            .Returns(new [] { _contactMetadata }.AsResponse());
            service.Setup(s => s.Execute(It.IsAny <RetrieveEntityRequest>()))
            .Returns(_contactMetadata.AsResponse());

            service.Setup(s => s.RetrieveMultiple(It.Is <QueryExpression>(e
                                                                          => e.Criteria.Conditions.Any(c => c.AttributeName == "contactid" && c.Values.Contains(customerId)))))
            .Returns(new EntityCollection(new List <Entity>
            {
                new Entity("contact", customerId)
                {
                    ["fullname"] = "Alexander Spirin"
                }
            }));

            var template = "Hi, ${Customer.contact.fullname}";
            var parser   = new FreeMarkerParser(service.Object, template);
            var result   = parser.Produce(new Dictionary <string, EntityReference>
            {
                ["Customer"] = new EntityReference("contact", customerId)
            });

            Assert.AreEqual("Hi, Alexander Spirin", result);
        }