diff options
author | Tyler Bischel <tyler.bischel@sendgrid.com> | 2012-01-11 15:04:01 -0800 |
---|---|---|
committer | Tyler Bischel <tyler.bischel@sendgrid.com> | 2012-01-11 15:04:01 -0800 |
commit | a41552ddec32925502381ff90e1825ee12fcb75d (patch) | |
tree | 253b8ce448ccc694281df362f61c23ef72e56454 /SendGrid/Tests/TestTreeNode.cs | |
parent | b9e0d64022a6ddc98d34bae7b3effc1692c45c5a (diff) | |
download | sendgrid-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-x | SendGrid/Tests/TestTreeNode.cs | 77 |
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());
+
}
}
}
|