summaryrefslogtreecommitdiffstats
path: root/SendGrid/Tests/TestTreeNode.cs
diff options
context:
space:
mode:
authorTyler Bischel <tyler.bischel@sendgrid.com>2012-01-11 15:04:01 -0800
committerTyler Bischel <tyler.bischel@sendgrid.com>2012-01-11 15:04:01 -0800
commita41552ddec32925502381ff90e1825ee12fcb75d (patch)
tree253b8ce448ccc694281df362f61c23ef72e56454 /SendGrid/Tests/TestTreeNode.cs
parentb9e0d64022a6ddc98d34bae7b3effc1692c45c5a (diff)
downloadsendgrid-csharp-a41552ddec32925502381ff90e1825ee12fcb75d.zip
sendgrid-csharp-a41552ddec32925502381ff90e1825ee12fcb75d.tar.gz
sendgrid-csharp-a41552ddec32925502381ff90e1825ee12fcb75d.tar.bz2
new tests for extended tree functionality like attaching an array of strings to the header, plus some cleanup, also an isempty function so that the sendgrid message can ignore the empty headers
Diffstat (limited to 'SendGrid/Tests/TestTreeNode.cs')
-rwxr-xr-xSendGrid/Tests/TestTreeNode.cs77
1 files changed, 60 insertions, 17 deletions
diff --git a/SendGrid/Tests/TestTreeNode.cs b/SendGrid/Tests/TestTreeNode.cs
index 4b8a28f..1701d74 100755
--- a/SendGrid/Tests/TestTreeNode.cs
+++ b/SendGrid/Tests/TestTreeNode.cs
@@ -1,7 +1,6 @@
using System;
using System.Collections.Generic;
using System.Linq;
-using System.Text;
using NUnit.Framework;
using SendGridMail;
@@ -11,47 +10,91 @@ namespace Tests
public class TestTreeNode
{
[Test]
- public void TestAddToTree()
+ public void TestAddSetting()
{
- var test = new Header.FilterNode();
+ var test = new Header.HeaderSettingsNode();
test.AddSetting(new List<string>(), "foo");
Assert.AreEqual("foo", test.GetLeaf(), "Get the leaf of the first node");
- test = new Header.FilterNode();
- test.AddSetting(new List<string>() { "foo" }, "bar");
+ test = new Header.HeaderSettingsNode();
+ test.AddSetting(new List<string> { "foo" }, "bar");
Assert.AreEqual("bar", test.GetSetting(new List<string>(){"foo"}), "Get the item in the first branch 'foo', make sure its set to 'bar'");
- test = new Header.FilterNode();
- test.AddSetting(new List<string>(){"foo"}, "bar");
+ test = new Header.HeaderSettingsNode();
+ test.AddSetting(new List<string> {"foo"}, "bar");
Assert.AreEqual("bar", test.GetSetting("foo"), "tests the convienence get setting function that omits the lists stuff...");
- test = new Header.FilterNode();
- test.AddSetting(new List<string>() { "foo", "bar", "raz" }, "foobar");
+ test = new Header.HeaderSettingsNode();
+ test.AddSetting(new List<string> { "foo", "bar", "raz" }, "foobar");
Assert.AreEqual("foobar", test.GetSetting("foo", "bar", "raz"), "tests a tree that is multiple branches deep");
-
- test = new Header.FilterNode();
- test.AddSetting(new List<string>() { "foo", "bar", "raz" }, "foobar");
- test.AddSetting(new List<string>() { "barfoo", "barbar", "barraz" }, "barfoobar");
+ test = new Header.HeaderSettingsNode();
+ test.AddSetting(new List<string> { "foo", "bar", "raz" }, "foobar");
+ test.AddSetting(new List<string> { "barfoo", "barbar", "barraz" }, "barfoobar");
Assert.AreEqual("foobar", test.GetSetting("foo", "bar", "raz"), "tests a tree that has multiple branches");
Assert.AreEqual("barfoobar", test.GetSetting("barfoo", "barbar", "barraz"), "tests the other branch");
+
+ test = new Header.HeaderSettingsNode();
+ test.AddSetting(new List<string> { "foo" }, "bar");
+ try
+ {
+ test.AddSetting(new List<string> {"foo", "raz"}, "blam");
+ Assert.Fail("exception not thrown");
+ }
+ catch (ArgumentException ex)
+ {
+ Assert.AreEqual("Attempt to overwrite setting", ex.Message);
+ }
+
}
[Test]
public void TestToJSON()
{
- var test = new Header.FilterNode();
+ var test = new Header.HeaderSettingsNode();
test.AddSetting(new List<string>() { "foo", "bar", "raz" }, "foobar");
var result = test.ToJson();
- Assert.AreEqual("{\"foo\":{\"bar\":{\"raz\":\"foobar\"}}}", result);
+ Assert.AreEqual("{\"foo\" : {\"bar\" : {\"raz\" : \"foobar\"}}}", result);
- test = new Header.FilterNode();
+ test = new Header.HeaderSettingsNode();
test.AddSetting(new List<string>() { "foo", "bar", "raz" }, "foobar");
test.AddSetting(new List<string>() { "barfoo", "barbar", "barraz" }, "barfoobar");
result = test.ToJson();
- Assert.AreEqual("{\"foo\":{\"bar\":{\"raz\":\"foobar\"}},\"barfoo\":{\"barbar\":{\"barraz\":\"barfoobar\"}}}", result);
+ Assert.AreEqual("{\"foo\" : {\"bar\" : {\"raz\" : \"foobar\"}},\"barfoo\" : {\"barbar\" : {\"barraz\" : \"barfoobar\"}}}", result);
+
+ test = new Header.HeaderSettingsNode();
+ test.AddArray(new List<string>{"foo"}, new List<string>{"bar", "raz"});
+ result = test.ToJson();
+ Assert.AreEqual("{\"foo\" : [\"bar\", \"raz\"]}", result);
+
+ }
+
+ [Test]
+ public void TestAddArray()
+ {
+ var test = new Header.HeaderSettingsNode();
+ test.AddArray(new List<string>{"foo", "bar"}, new string[]{"raz", "blam"});
+ var result = test.GetArray("foo", "bar");
+ Assert.AreEqual(result.ToList()[0], "raz");
+ Assert.AreEqual(result.ToList()[1], "blam");
+ }
+
+ [Test]
+ public void TestIsEmpty()
+ {
+ var test = new Header.HeaderSettingsNode();
+ Assert.IsTrue(test.IsEmpty());
+
+ test = new Header.HeaderSettingsNode();
+ test.AddSetting(new List<string>{"foo"}, "bar");
+ Assert.IsFalse(test.IsEmpty());
+
+ test = new Header.HeaderSettingsNode();
+ test.AddArray(new List<string> { "raz" }, new List<string>{"blam"});
+ Assert.IsFalse(test.IsEmpty());
+
}
}
}