Report abuse

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
using DynamicXMLReader;
using NUnit.Framework;

namespace DynamicXMLReaderTests
{
  [TestFixture]
  public class DynamicXmlReaderTests
  {
    [Test]
    public void CanReadOneLevelAttributeAsProperty()
    {
      const string someXml = "<name first=\"Aaron\" />";
      dynamic dynamicReader = DynamicXmlReader.Parse(someXml);
      Assert.AreEqual("Aaron", dynamicReader.Name.First);
    }

    [Test]
    public void CanReadTwoLevelElementAsProperty()
    {
      const string someXml 
        = "<name first=\"Aaron\" last=\"Erickson\"><age>37</age><book>The Nomadic Developer</book><book>Professional F#></book></name>";
      dynamic dynamicReader = DynamicXmlReader.Parse(someXml);
      Assert.AreEqual(37, int.Parse(dynamicReader.Name.Age));
    }

    [Test]
    public void CanReadTheSecondBook()
    {
      const string someXml 
        = "<name first=\"Aaron\" last=\"Erickson\"><age>37</age><book>The Nomadic Developer</book><book>Professional F#</book></name>";
      dynamic dynamicReader = DynamicXmlReader.Parse(someXml);
      Assert.AreEqual("Professional F#", dynamicReader.Name.Book[1]);
    }

    [Test]
    public void CanReadTheFirstBooksSubTitleTitle()
    {
      const string someXml 
        = "<name first=\"Aaron\" last=\"Erickson\"><age>37</age><book><title>The Nomadic Developer</title><subtitle>Surviving in consulting</subtitle></book><book>Professional F#</book></name>";
      dynamic dynamicReader = DynamicXmlReader.Parse(someXml);
      Assert.AreEqual("Surviving in consulting", dynamicReader.Name.Book[0].Subtitle);
    }
  }
}