github.com/niedbalski/juju@v0.0.0-20190215020005-8ff100488e47/apiserver/common/presence_test.go (about)

     1  // Copyright 2018 Canonical Ltd.
     2  // Licensed under the AGPLv3, see LICENCE file for details.
     3  
     4  package common_test
     5  
     6  import (
     7  	"fmt"
     8  
     9  	"github.com/juju/errors"
    10  
    11  	"github.com/juju/juju/apiserver/common"
    12  	"github.com/juju/juju/core/presence"
    13  )
    14  
    15  func agentAlive(agent string) common.ModelPresence {
    16  	return &fakeModelPresence{status: presence.Alive, agent: agent}
    17  }
    18  
    19  func agentDown(agent string) common.ModelPresence {
    20  	return &fakeModelPresence{status: presence.Missing, agent: agent}
    21  }
    22  
    23  func presenceError(agent string) common.ModelPresence {
    24  	return &fakeModelPresence{err: errors.New("boom"), agent: agent}
    25  }
    26  
    27  type fakeModelPresence struct {
    28  	agent  string
    29  	status presence.Status
    30  	err    error
    31  }
    32  
    33  func (f *fakeModelPresence) AgentStatus(agent string) (presence.Status, error) {
    34  	if agent != f.agent {
    35  		return f.status, fmt.Errorf("unexpected agent %v, expected %v", agent, f.agent)
    36  	}
    37  	return f.status, f.err
    38  }