func TestHandlerRightRef(t *testing.T) { b := test.Blob{Contents: "Foo"} storage := new(test.Fetcher) ref, err := schema.WriteFileFromReader(storage, "", b.Reader()) if err != nil { t.Fatal(err) } if err != nil { t.Fatal(err) } ts := httptest.NewServer(createVideothumbnailHandler(ref, storage)) defer ts.Close() resp, err := http.Get(ts.URL + "/" + ref.String()) if err != nil { t.Fatal(err) } if resp.StatusCode != 200 { t.Fatalf("expected 200 status: %v", resp) } content, err := ioutil.ReadAll(resp.Body) if err != nil { t.Fatal(err) } if string(content) != b.Contents { t.Errorf("excepted handler to serve data") } }
func mustReceive(t *testing.T, dst blobserver.Storage, tb *test.Blob) blob.SizedRef { tbRef := tb.BlobRef() sb, err := blobserver.Receive(dst, tbRef, tb.Reader()) if err != nil { t.Fatalf("Receive: %v", err) } if int(sb.Size) != len(tb.Contents) { t.Fatalf("size = %d; want %d", sb.Size, len(tb.Contents)) } if sb.Ref != tbRef { t.Fatal("wrong blob received") } return sb }
// checkShard iterates through shards and find the blob. error if it is not found in expectShard, found somewhere else, or not found at all func (sto testStorage) checkShard(b *test.Blob, expectShard int) { for shardN, shard := range sto.shards { _, _, err := shard.Fetch(b.BlobRef()) if err != nil && shardN == expectShard { sto.t.Errorf("expected ref %v in shard %d, but didn't find it there", b.BlobRef(), expectShard) continue } if err != nil { // node wasn't found here, as expected continue } if shardN != expectShard { sto.t.Errorf("found ref %v in shard %d, expected in shard %d", b.BlobRef(), shardN, expectShard) } // node was found, and we expected it } }
func all(blob *test.Blob) *BytesPart { return part(blob, 0, uint64(blob.Size())) }
func part(blob *test.Blob, offset, size uint64) *BytesPart { return &BytesPart{BlobRef: blob.BlobRef(), Size: size, Offset: offset} }