1
// Copyright 2014 ALTOROS
2
// Licensed under the AGPLv3, see LICENSE file for details.
13
func TestDataDriversReaderFail(t *testing.T) {
16
if _, err := ReadDrive(r); err == nil || err.Error() != "test error" {
20
if _, err := ReadDrives(r); err == nil || err.Error() != "test error" {
25
func TestDataDrivesUnmarshal(t *testing.T) {
28
dd.Meta.Offset = 12345
29
dd.Meta.TotalCount = 12345
30
err := json.Unmarshal([]byte(jsonDrivesData), &dd)
35
verifyMeta(t, &dd.Meta, 0, 0, 9)
37
for i := 0; i < len(drivesData); i++ {
38
compareDrives(t, i, &dd.Objects[i], &drivesData[i])
42
func TestDataDrivesDetailUnmarshal(t *testing.T) {
45
dd.Meta.Offset = 12345
46
dd.Meta.TotalCount = 12345
47
err := json.Unmarshal([]byte(jsonDrivesDetailData), &dd)
52
verifyMeta(t, &dd.Meta, 0, 0, 9)
54
for i := 0; i < len(drivesDetailData); i++ {
55
compareDrives(t, i, &dd.Objects[i], &drivesDetailData[i])
59
func TestDataDrivesReadDrives(t *testing.T) {
60
dd, err := ReadDrives(strings.NewReader(jsonDrivesData))
64
for i := 0; i < len(drivesData); i++ {
65
compareDrives(t, i, &dd[i], &drivesData[i])
69
func TestDataDrivesReadDrive(t *testing.T) {
70
d, err := ReadDrive(strings.NewReader(jsonDriveData))
75
compareDrives(t, 0, d, &driveData)
78
func TestDataDrivesLibDrive(t *testing.T) {
79
d, err := ReadDrive(strings.NewReader(jsonLibraryDriveData))
84
compareDrives(t, 0, d, &libraryDriveData)
87
func compareDrives(t *testing.T, i int, value, wants *Drive) {
88
if value.Resource != wants.Resource {
89
t.Errorf("Drive.Resource error [%d]: found %#v, wants %#v", i, value.Resource, wants.Resource)
92
if len(value.Affinities) != len(wants.Affinities) {
93
t.Errorf("Drive.Affinities error [%d]: found %#v, wants %#v", i, value.Affinities, wants.Affinities)
95
for j := 0; j < len(value.Affinities); j++ {
96
v := value.Affinities[j]
97
w := wants.Affinities[j]
99
t.Errorf("Drive.Affinities error [%d]: at %d found %#v, wants %#v", i, j, v, w)
104
if value.AllowMultimount != wants.AllowMultimount {
105
t.Errorf("Drive.AllowMultimount error [%d]: found %#v, wants %#v", i, value.AllowMultimount, wants.AllowMultimount)
108
if len(value.Jobs) != len(wants.Jobs) {
109
t.Errorf("Drive.Jobs error [%d]: found %#v, wants %#v", i, value.Jobs, wants.Jobs)
111
for j := 0; j < len(value.Jobs); j++ {
115
t.Errorf("Drive.Jobs error [%d]: at %d found %#v, wants %#v", i, j, v, w)
120
if value.Media != wants.Media {
121
t.Errorf("Drive.Media error [%d]: found %#v, wants %#v", i, value.Media, wants.Media)
124
compareMeta(t, fmt.Sprintf("Drive.Meta error [%d]", i), value.Meta, wants.Meta)
126
if value.Name != wants.Name {
127
t.Errorf("Drive.Name error [%d]: found %#v, wants %#v", i, value.Name, wants.Name)
130
if value.Owner != nil && wants.Owner != nil {
131
if *value.Owner != *wants.Owner {
132
t.Errorf("Drive.Owner error [%d]: found %#v, wants %#v", i, value.Owner, wants.Owner)
134
} else if value.Owner != nil || wants.Owner != nil {
135
t.Errorf("Drive.Owner error [%d]: found %#v, wants %#v", i, value.Owner, wants.Owner)
138
if value.Size != wants.Size {
139
t.Errorf("Drive.Size error [%d]: found %#v, wants %#v", i, value.Size, wants.Size)
142
if value.Status != wants.Status {
143
t.Errorf("Drive.Status error [%d]: found %#v, wants %#v", i, value.Status, wants.Status)
146
if value.StorageType != wants.StorageType {
147
t.Errorf("Drive.StorageType error [%d]: found %#v, wants %#v", i, value.StorageType, wants.StorageType)
151
// specific for media library drives
153
if value.Arch != wants.Arch {
154
t.Errorf("Drive.Arch error [%d]: found %#v, wants %#v", i, value.Arch, wants.Arch)
156
if value.ImageType != wants.ImageType {
157
t.Errorf("Drive.ImageType error [%d]: found %#v, wants %#v", i, value.ImageType, wants.ImageType)
159
if value.OS != wants.OS {
160
t.Errorf("Drive.OS error [%d]: found %#v, wants %#v", i, value.OS, wants.OS)
162
if value.Paid != wants.Paid {
163
t.Errorf("Drive.Paid error [%d]: found %#v, wants %#v", i, value.Paid, wants.Paid)