8236: Add comment to BogusActor.ping()
[arvados.git] / services / datamanager / collection / testing.go
index 1d3c2e811b8df6d001d2f5e68878886b61231c74..223843372290f91cd58655f44eb1e404afe2127d 100644 (file)
@@ -7,6 +7,7 @@ import (
        "git.curoverse.com/arvados.git/sdk/go/blockdigest"
 )
 
+// TestCollectionSpec with test blocks and desired replication level
 type TestCollectionSpec struct {
        // The desired replication level
        ReplicationLevel int
@@ -15,23 +16,23 @@ type TestCollectionSpec struct {
        Blocks []int
 }
 
-// Creates a ReadCollections object for testing based on the give
-// specs.  Only the ReadAllCollections and UuidToCollection fields are
-// populated.  To populate other fields call rc.Summarize().
+// MakeTestReadCollections creates a ReadCollections object for testing
+// based on the give specs. Only the ReadAllCollections and UUIDToCollection
+// fields are populated. To populate other fields call rc.Summarize().
 func MakeTestReadCollections(specs []TestCollectionSpec) (rc ReadCollections) {
        rc = ReadCollections{
                ReadAllCollections: true,
-               UuidToCollection:   map[string]Collection{},
+               UUIDToCollection:   map[string]Collection{},
        }
 
        for i, spec := range specs {
                c := Collection{
-                       Uuid:              fmt.Sprintf("col%d", i),
-                       OwnerUuid:         fmt.Sprintf("owner%d", i),
+                       UUID:              fmt.Sprintf("col%d", i),
+                       OwnerUUID:         fmt.Sprintf("owner%d", i),
                        ReplicationLevel:  spec.ReplicationLevel,
                        BlockDigestToSize: map[blockdigest.BlockDigest]int{},
                }
-               rc.UuidToCollection[c.Uuid] = c
+               rc.UUIDToCollection[c.UUID] = c
                for _, j := range spec.Blocks {
                        c.BlockDigestToSize[blockdigest.MakeTestBlockDigest(j)] = j
                }
@@ -44,3 +45,17 @@ func MakeTestReadCollections(specs []TestCollectionSpec) (rc ReadCollections) {
        }
        return
 }
+
+// CollectionIndicesForTesting returns a slice giving the collection
+// index of each collection that was passed in to MakeTestReadCollections.
+// rc.Summarize() must be called before this method, since Summarize()
+// assigns an index to each collection.
+func (rc ReadCollections) CollectionIndicesForTesting() (indices []int) {
+       // TODO(misha): Assert that rc.Summarize() has been called.
+       numCollections := len(rc.CollectionIndexToUUID)
+       indices = make([]int, numCollections)
+       for i := 0; i < numCollections; i++ {
+               indices[i] = rc.CollectionUUIDToIndex[fmt.Sprintf("col%d", i)]
+       }
+       return
+}