forked from CoreOffice/XMLCoder
-
Notifications
You must be signed in to change notification settings - Fork 0
/
XMLElementTests.swift
67 lines (55 loc) · 2.3 KB
/
XMLElementTests.swift
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
// Copyright (c) 2018-2020 XMLCoder contributors
//
// This software is released under the MIT License.
// https://opensource.org/licenses/MIT
//
// Created by Vincent Esche on 12/24/18.
//
import XCTest
@testable import XMLCoder
class XMLElementTests: XCTestCase {
func testInitNull() {
let null = XMLCoderElement(key: "foo")
XCTAssertEqual(null.key, "foo")
XCTAssertNil(null.stringValue)
XCTAssertEqual(null.elements, [])
XCTAssertEqual(null.attributes, [])
}
func testInitUnkeyed() {
let keyed = XMLCoderElement(key: "foo", isStringBoxCDATA: false, box: UnkeyedBox())
XCTAssertEqual(keyed.key, "foo")
XCTAssertNil(keyed.stringValue)
XCTAssertEqual(keyed.elements, [])
XCTAssertEqual(keyed.attributes, [])
}
func testInitKeyed() {
let keyed = XMLCoderElement(key: "foo", isStringBoxCDATA: false, box: KeyedBox(
elements: [] as [(String, Box)],
attributes: [("baz", NullBox()), ("blee", IntBox(42))] as [(String, SimpleBox)]
))
XCTAssertEqual(keyed.key, "foo")
XCTAssertNil(keyed.stringValue)
XCTAssertEqual(keyed.elements, [])
XCTAssertEqual(keyed.attributes, [XMLCoderElement.Attribute(key: "blee", value: "42")])
}
func testInitSimple() {
let keyed = XMLCoderElement(key: "foo", isStringBoxCDATA: false, box: StringBox("bar"))
let element = XMLCoderElement(stringValue: "bar")
XCTAssertEqual(keyed.key, "foo")
XCTAssertNil(keyed.stringValue)
XCTAssertEqual(keyed.elements, [element])
XCTAssertEqual(keyed.attributes, [])
}
func testWhitespaceWithNoElements_keyed() {
let keyed = XMLCoderElement(key: "foo", isStringBoxCDATA: false, box: StringBox("bar"))
XCTAssertFalse(keyed.isWhitespaceWithNoElements())
}
func testWhitespaceWithNoElements_whitespace() {
let whitespaceElement1 = XMLCoderElement(stringValue: "\n ")
let whitespaceElement2 = XMLCoderElement(stringValue: "\n")
let whitespaceElement3 = XMLCoderElement(stringValue: " ")
XCTAssert(whitespaceElement1.isWhitespaceWithNoElements())
XCTAssert(whitespaceElement2.isWhitespaceWithNoElements())
XCTAssert(whitespaceElement3.isWhitespaceWithNoElements())
}
}