-
Notifications
You must be signed in to change notification settings - Fork 11
Expand file tree
/
Copy pathXmlCustomDataModelTest.cs
More file actions
127 lines (102 loc) · 4.63 KB
/
XmlCustomDataModelTest.cs
File metadata and controls
127 lines (102 loc) · 4.63 KB
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
using System;
using System.Collections.Generic;
using System.Linq.Expressions;
using NUnit.Framework;
using SolidifyProject.Engine.Infrastructure.Enums;
namespace SolidifyProject.Engine.Test.Unit.Infrastructure.Models.CustomDataModel.Parse
{
[TestFixture]
public class XmlCustomDataModelTest
{
[Test]
public void ParseXmlOnlyWithAttributes()
{
var model = new Engine.Infrastructure.Models.CustomDataModel();
model.Id = "file.xml";
model.ContentRaw = @"<root>
<links name=""facebook"" url=""https://facebook.com"" />
<links name=""twitter"" url=""https://twitter.com"" />
</root>";
model.Parse();
Assert.NotNull(model.DataType);
Assert.AreEqual(CustomDataType.Xml.ToString(), model.DataType.ToString());
var data = (dynamic) model.CustomData;
Assert.IsNotNull(data);
Assert.AreEqual(2, data.root.links.Count);
Assert.AreEqual("facebook", (string)data.root.links[0]["@name"]);
Assert.AreEqual("https://facebook.com", (string)data.root.links[0]["@url"]);
Assert.AreEqual("twitter", (string)data.root.links[1]["@name"]);
Assert.AreEqual("https://twitter.com", (string)data.root.links[1]["@url"]);
}
[Test]
public void ParseXmlOnlyWithFields()
{
var model = new Engine.Infrastructure.Models.CustomDataModel();
model.Id = "file.xml";
model.ContentRaw = @"<root>
<links>
<name>facebook</name>
<url>https://facebook.com</url>
</links>
<links>
<name>twitter</name>
<url>https://twitter.com</url>
</links>
</root>";
model.Parse();
Assert.NotNull(model.DataType);
Assert.AreEqual(CustomDataType.Xml.ToString(), model.DataType.ToString());
var data = (dynamic) model.CustomData;
Assert.IsNotNull(data);
Assert.AreEqual(2, data.root.links.Count);
Assert.AreEqual("facebook", (string)data.root.links[0].name);
Assert.AreEqual("https://facebook.com", (string)data.root.links[0].url);
Assert.AreEqual("twitter", (string)data.root.links[1].name);
Assert.AreEqual("https://twitter.com", (string)data.root.links[1].url);
}
[Test]
public void ParseXmlWithFieldAndAttribute()
{
var model = new Engine.Infrastructure.Models.CustomDataModel();
model.Id = "file.xml";
model.ContentRaw = @"<root>
<links name=""facebook"">
<url>https://facebook.com</url>
</links>
<links name=""twitter"">
<url>https://twitter.com</url>
</links>
</root>";
model.Parse();
Assert.NotNull(model.DataType);
Assert.AreEqual(CustomDataType.Xml.ToString(), model.DataType.ToString());
var data = (dynamic) model.CustomData;
Assert.IsNotNull(data);
Assert.AreEqual(2, data.root.links.Count);
Assert.AreEqual("facebook", (string)data.root.links[0]["@name"]);
Assert.AreEqual("https://facebook.com", (string)data.root.links[0].url);
Assert.AreEqual("twitter", (string)data.root.links[1]["@name"]);
Assert.AreEqual("https://twitter.com", (string)data.root.links[1].url);
}
[Test]
public void ParseXmlWithAttributeAndValue()
{
var model = new Engine.Infrastructure.Models.CustomDataModel();
model.Id = "file.xml";
model.ContentRaw = @"<root>
<links name=""facebook"">https://facebook.com</links>
<links name=""twitter"">https://twitter.com</links>
</root>";
model.Parse();
Assert.NotNull(model.DataType);
Assert.AreEqual(CustomDataType.Xml.ToString(), model.DataType.ToString());
var data = (dynamic) model.CustomData;
Assert.IsNotNull(data);
Assert.AreEqual(2, data.root.links.Count);
Assert.AreEqual("facebook", (string)data.root.links[0]["@name"]);
Assert.AreEqual("https://facebook.com", (string)data.root.links[0]["#text"]);
Assert.AreEqual("twitter", (string)data.root.links[1]["@name"]);
Assert.AreEqual("https://twitter.com", (string)data.root.links[1]["#text"]);
}
}
}