forked from stmcginnis/gofish
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathassembly_test.go
127 lines (110 loc) · 3.03 KB
/
assembly_test.go
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
//
// SPDX-License-Identifier: BSD-3-Clause
//
package redfish
import (
"encoding/json"
"strings"
"testing"
)
const AssembyName = "Assembly One"
var assemblyBody = strings.NewReader(
`{
"@odata.id": "/redfish/v1/Assembly/1",
"@odata.context": "/redfish/v1/$metadata#Assembly.Assembly",
"@odata.type": "#Assembly.v1_2_1.Assembly",
"Assemblies": [
{
"@odata.id": "/redfish/v1/Assembly/1/AssemblyData",
"BinaryDataURI": "/image/path",
"Description": "Assembly Description",
"EngineeringChangeLevel": "1.2.3",
"MemberId": "1",
"Model": "AssemblyOne",
"Name": "Assembly One",
"PartNumber": "Assembly Part",
"PhysicalContext": "ContextInfo",
"Producer": "Vendor One",
"ProductionDate": "2013-09-11T17:03:55+00:00",
"SKU": "1234",
"SerialNumber": "12345",
"SparePartNumber": "12345-1234",
"Status": {
"State": "Enabled",
"Health": "OK",
"HealthRollup": "OK"
},
"Vendor": "Vendor One",
"Version": "1.2.3.4"
}
],
"[email protected]": 1,
"Description": "Assembly Description",
"Id": "1",
"Name": "Assembly One"
}`)
var assemblyDataBody = strings.NewReader(
`{
"@odata.id": "/redfish/v1/Assembly/1/AssemblyData",
"BinaryDataURI": "/image/path",
"Description": "Assembly Description",
"EngineeringChangeLevel": "1.2.3",
"MemberId": "1",
"Model": "AssemblyOne",
"Name": "Assembly One",
"PartNumber": "Assembly Part",
"PhysicalContext": "ContextInfo",
"Producer": "Vendor One",
"ProductionDate": "2013-09-11T17:03:55+00:00",
"SKU": "1234",
"SerialNumber": "12345",
"SparePartNumber": "12345-1234",
"Status": {
"State": "Enabled",
"Health": "OK",
"HealthRollup": "OK"
},
"Vendor": "Vendor One",
"Version": "1.2.3.4"
}`)
// TestAssembly tests the parsing of Assembly objects.
func TestAssembly(t *testing.T) {
var result Assembly
err := json.NewDecoder(assemblyBody).Decode(&result)
if err != nil {
t.Errorf("Error decoding JSON: %s", err)
}
if result.ID != "1" {
t.Errorf("Received invalid ID: %s", result.ID)
}
if result.Name != AssembyName {
t.Errorf("Received invalid name: %s", result.Name)
}
if len(result.Assemblies) != result.AssembliesCount {
t.Errorf("Parsed %d assemblies but should be %d",
len(result.Assemblies), result.AssembliesCount)
}
}
// TestAssemblyData tests the parsing of AssemblyData objects.
func TestAssemblyData(t *testing.T) {
var result AssemblyData
err := json.NewDecoder(assemblyDataBody).Decode(&result)
if err != nil {
t.Errorf("Error decoding JSON: %s", err)
}
if result.MemberID != "1" {
t.Errorf("Received invalid member ID: %s", result.MemberID)
}
if result.Model != "AssemblyOne" {
t.Errorf("Received invalid model: %s", result.Model)
}
if result.Name != AssembyName {
t.Errorf("Received invalid name: %s", result.Name)
}
if result.BinaryDataURI != "/image/path" {
t.Errorf("Received invalid binary data URI: %s", result.BinaryDataURI)
}
if result.Status.State != "Enabled" {
t.Errorf("Received invalid status state: %s", result.Status.State)
}
}