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 }