github.com/juju/juju@v0.0.0-20240430160146-1752b71fcf00/resource/export_test.go (about)

     1  // Copyright 2017 Canonical Ltd.
     2  // Licensed under the AGPLv3, see LICENCE file for details.
     3  
     4  package resource
     5  
     6  import (
     7  	"time"
     8  
     9  	"github.com/juju/charm/v12"
    10  	"github.com/juju/names/v5"
    11  
    12  	"github.com/juju/juju/state"
    13  )
    14  
    15  func NewCSRetryClientForTest(client ResourceGetter) *ResourceRetryClient {
    16  	retryClient := newRetryClient(client)
    17  	// Reduce retry delay for test.
    18  	retryClient.retryArgs.Delay = 1 * time.Millisecond
    19  	return retryClient
    20  }
    21  
    22  func NewCharmHubClientForTest(cl CharmHub, logger Logger) *CharmHubClient {
    23  	return &CharmHubClient{
    24  		client: cl,
    25  		logger: logger,
    26  	}
    27  }
    28  
    29  func NewResourceRetryClientForTest(cl ResourceGetter) *ResourceRetryClient {
    30  	client := newRetryClient(cl)
    31  	client.retryArgs.Delay = time.Millisecond
    32  	return client
    33  }
    34  
    35  func NewResourceOpenerForTest(
    36  	res Resources,
    37  	tag names.Tag,
    38  	unitName string,
    39  	appName string,
    40  	charmURL *charm.URL,
    41  	charmOrigin state.CharmOrigin,
    42  	resourceClient ResourceGetter,
    43  	resourceDownloadLimiter ResourceDownloadLock,
    44  ) *ResourceOpener {
    45  	return &ResourceOpener{
    46  		modelUUID:      "uuid",
    47  		resourceCache:  res,
    48  		user:           tag,
    49  		unitName:       unitName,
    50  		appName:        appName,
    51  		charmURL:       charmURL,
    52  		charmOrigin:    charmOrigin,
    53  		resourceClient: resourceClient,
    54  		resourceDownloadLimiterFunc: func() ResourceDownloadLock {
    55  			return resourceDownloadLimiter
    56  		},
    57  	}
    58  }