github.com/mhilton/juju-juju@v0.0.0-20150901100907-a94dd2c73455/apiserver/common/export_test.go (about)

     1  // Copyright 2014 Canonical Ltd.
     2  // Licensed under the AGPLv3, see LICENCE file for details.
     3  
     4  package common
     5  
     6  import "github.com/juju/juju/state"
     7  
     8  var (
     9  	MachineJobFromParams = machineJobFromParams
    10  	ValidateNewFacade    = validateNewFacade
    11  	WrapNewFacade        = wrapNewFacade
    12  	NilFacadeRecord      = facadeRecord{}
    13  	EnvtoolsFindTools    = &envtoolsFindTools
    14  	SendMetrics          = &sendMetrics
    15  )
    16  
    17  type Patcher interface {
    18  	PatchValue(dest, value interface{})
    19  }
    20  
    21  // SanitizeFacades patches Facades so that for the lifetime of the test we get
    22  // a clean slate to work from, and will not accidentally overrite/mutate the
    23  // real facade registry.
    24  func SanitizeFacades(patcher Patcher) {
    25  	emptyFacades := &FacadeRegistry{}
    26  	patcher.PatchValue(&Facades, emptyFacades)
    27  }
    28  
    29  type Versions versions
    30  
    31  func DescriptionFromVersions(name string, vers Versions) FacadeDescription {
    32  	return descriptionFromVersions(name, versions(vers))
    33  }
    34  
    35  func NewMultiNotifyWatcher(w ...state.NotifyWatcher) state.NotifyWatcher {
    36  	mw := newMultiNotifyWatcher(w...)
    37  	return mw
    38  }