func (s *HandlerSuite) TestGetCollection(c *check.C) {
var proxied, direct map[string]interface{}
var err error
+ skippedFields := map[string]bool{
+ "href": true,
+ }
// Get collection from controller
fooURL := "/arvados/v1/collections/" + arvadostest.FooCollection
err = json.Unmarshal(db, &direct)
c.Check(err, check.Equals, nil)
- // Check that all railsAPI provided keys exist on the controller response
- // and their non-nil values are equal.
+ // Check that all RailsAPI provided keys exist on the controller response.
for k := range direct {
- if val, ok := proxied[k]; ok {
+ if _, ok := skippedFields[k]; ok {
+ continue
+ } else if val, ok := proxied[k]; ok {
if k == "manifest_text" {
// Tokens differ from request to request
c.Check(strings.Split(val.(string), "+A")[0], check.Equals, strings.Split(direct[k].(string), "+A")[0])
- } else if direct[k] != nil {
- c.Check(val, check.DeepEquals, direct[k])
+ } else {
+ c.Check(val, check.DeepEquals, direct[k],
+ check.Commentf("RailsAPI key %q's value %q differs from controller's %q.", k, direct[k], val))
}
} else {
- c.Errorf("Key %q missing", k)
+ c.Errorf("Key %q missing on controller's response.", k)
}
}
}
Name string `json:"name"`
CreatedAt time.Time `json:"created_at"`
ModifiedAt time.Time `json:"modified_at"`
- ModifiedByClientUUID string `json:"modified_by_client_uuid"`
- ModifiedByUserUUID string `json:"modified_by_user_uuid"`
+ ModifiedByClientUUID *string `json:"modified_by_client_uuid"`
+ ModifiedByUserUUID *string `json:"modified_by_user_uuid"`
PortableDataHash string `json:"portable_data_hash"`
ReplicationConfirmed *int `json:"replication_confirmed"`
ReplicationConfirmedAt *time.Time `json:"replication_confirmed_at"`
ReplicationDesired *int `json:"replication_desired"`
StorageClassesDesired []string `json:"storage_classes_desired"`
StorageClassesConfirmed []string `json:"storage_classes_confirmed"`
- StorageClassesConfirmedAt time.Time `json:"storage_classes_confirmed_at"`
+ StorageClassesConfirmedAt *time.Time `json:"storage_classes_confirmed_at"`
DeleteAt *time.Time `json:"delete_at"`
IsTrashed bool `json:"is_trashed"`
Properties map[string]interface{} `json:"properties"`
WritableBy []string `json:"writable_by,omitempty"`
- FileCount *int `json:"file_count"`
- FileSizeTotal *int `json:"file_size_total"`
+ FileCount int `json:"file_count"`
+ FileSizeTotal int64 `json:"file_size_total"`
Version *int `json:"version"`
PreserveVersion bool `json:"preserve_version"`
CurrentVersionUUID string `json:"current_version_uuid"`
- Description string `json:"description"`
- Href string `json:"href"`
+ Description *string `json:"description"`
}
func (c Collection) resourceName() string {