public void TestPlaceholder() { var rand = new Random(); var seed = rand.Next(); Logger.InfoFormat("Using seed {0}", seed); var instanceConfig = GetConfig().Instances.First(); var templateText = File.ReadAllText(@"Templates\AckTemplate.htm"); var placeholders = AckEmailPlaceholder.GetPlaceholders(templateText); var fields = GetWorkItemFields(seed); var workItem = new WorkItemFieldsMock(fields); var template = new AckEmailTemplate(templateText); var body = template.Apply(workItem, instanceConfig); Assert.IsTrue(body.Contains(workItem.ID), "Work item ID has not been replaced."); Assert.IsTrue(body.Contains(workItem.Title), "Work item title has not been replaced."); Assert.IsTrue(body.Contains(workItem.State), "Work item state has not been replaced."); Assert.IsTrue(body.Contains(workItem.Owner), "Work item owner has not been replaced."); foreach (var placeholder in placeholders) { Assert.IsFalse(body.Contains(placeholder.Text), $"Placeholder {placeholder.Text} has not been replaced."); } }
public void TestPlaceholderForNamedField() { var rand = new Random(); var seed = rand.Next(); Logger.InfoFormat("Using seed {0}", seed); var instanceConfig = GetConfig().Instances.First(); var templateText = File.ReadAllText(@"Templates\AckTemplate.htm"); var placeholders = AckEmailPlaceholder.GetPlaceholders(templateText); var fields = GetWorkItemFields(seed); var namedField = "Priority"; var namedFieldValue = "PRI2"; fields[namedField] = namedFieldValue; var namedPlaceholder = placeholders.First(p => p.Field.Equals(namedField, StringComparison.InvariantCultureIgnoreCase)); Assert.IsNotNull(namedPlaceholder, $"Bad test data; placeholder for {namedField} not found in template."); var workItem = new WorkItemFieldsMock(fields); var template = new AckEmailTemplate(templateText); var body = template.Apply(workItem, instanceConfig); Assert.IsFalse(body.Contains(namedPlaceholder.Text), $"Placeholder {namedPlaceholder.Text} has not been replaced."); Assert.IsTrue(body.Contains(namedFieldValue), $"Placeholder {namedPlaceholder.Text} has not been replaced with {namedFieldValue}."); }
public void TestPlaceholderWithDefault() { var rand = new Random(); var seed = rand.Next(); Logger.InfoFormat("Using seed {0}", seed); var instanceConfig = GetConfig().Instances.First(); var templateText = File.ReadAllText(@"Templates\AckTemplate.htm"); var placeholders = AckEmailPlaceholder.GetPlaceholders(templateText); var fields = GetWorkItemFields(seed); fields["Assigned To"] = null; fields["Priority"] = null; var placeholdersWithDefaults = placeholders.Where(p => p.Field.Equals("BugOwner") || p.Field.Equals("Priority")); Assert.AreEqual(2, placeholdersWithDefaults.Count(), "Bad test data; all expected placeholders not found."); var workItem = new WorkItemFieldsMock(fields); var template = new AckEmailTemplate(templateText); var body = template.Apply(workItem, instanceConfig); foreach (var placeholder in placeholdersWithDefaults) { Assert.IsFalse(body.Contains(placeholder.Text), $"Placeholder '{placeholder.Text}' has not been replaced."); Assert.IsTrue(body.Contains(placeholder.DefaultValue), $"Placeholder '{placeholder.Text}' has not been replaced with its default value '{placeholder.DefaultValue}'."); } }