github.com/uber/kraken@v0.1.4/lib/torrent/storage/agentstorage/fixtures.go (about)

     1  // Copyright (c) 2016-2019 Uber Technologies, Inc.
     2  //
     3  // Licensed under the Apache License, Version 2.0 (the "License");
     4  // you may not use this file except in compliance with the License.
     5  // You may obtain a copy of the License at
     6  //
     7  //     http://www.apache.org/licenses/LICENSE-2.0
     8  //
     9  // Unless required by applicable law or agreed to in writing, software
    10  // distributed under the License is distributed on an "AS IS" BASIS,
    11  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    12  // See the License for the specific language governing permissions and
    13  // limitations under the License.
    14  package agentstorage
    15  
    16  import (
    17  	"github.com/uber/kraken/core"
    18  	"github.com/uber/kraken/lib/store"
    19  	"github.com/uber/kraken/tracker/metainfoclient"
    20  	"github.com/uber/kraken/utils/testutil"
    21  	"github.com/uber-go/tally"
    22  )
    23  
    24  // TorrentArchiveFixture returns a TorrrentArchive for testing purposes.
    25  func TorrentArchiveFixture() (*TorrentArchive, func()) {
    26  	cads, cleanup := store.CADownloadStoreFixture()
    27  	archive := NewTorrentArchive(tally.NoopScope, cads, nil)
    28  	return archive, cleanup
    29  }
    30  
    31  // TorrentFixture returns a Torrent for the given metainfo for testing purposes.
    32  func TorrentFixture(mi *core.MetaInfo) (*Torrent, func()) {
    33  	var cleanup testutil.Cleanup
    34  	defer cleanup.Recover()
    35  
    36  	cads, c := store.CADownloadStoreFixture()
    37  	cleanup.Add(c)
    38  
    39  	tc := metainfoclient.NewTestClient()
    40  
    41  	ta := NewTorrentArchive(tally.NoopScope, cads, tc)
    42  
    43  	if err := tc.Upload(mi); err != nil {
    44  		panic(err)
    45  	}
    46  
    47  	t, err := ta.CreateTorrent("noexist", mi.Digest())
    48  	if err != nil {
    49  		panic(err)
    50  	}
    51  
    52  	return t.(*Torrent), cleanup.Run
    53  }