github.com/cloud-green/juju@v0.0.0-20151002100041-a00291338d3d/service/windows/stubsvcmanager_test.go (about)

     1  package windows
     2  
     3  import (
     4  	"github.com/juju/testing"
     5  
     6  	"github.com/juju/juju/service/common"
     7  )
     8  
     9  type service struct {
    10  	running bool
    11  
    12  	conf common.Conf
    13  }
    14  
    15  var MgrServices = map[string]*service{}
    16  
    17  type StubSvcManager struct {
    18  	*testing.Stub
    19  }
    20  
    21  func (s *StubSvcManager) Start(name string) error {
    22  	s.Stub.AddCall("Start", name)
    23  
    24  	if svc, ok := MgrServices[name]; !ok {
    25  		return c_ERROR_SERVICE_DOES_NOT_EXIST
    26  	} else {
    27  		svc.running = true
    28  	}
    29  	return nil
    30  }
    31  
    32  func (s *StubSvcManager) Stop(name string) error {
    33  	s.Stub.AddCall("Stop", name)
    34  
    35  	if svc, ok := MgrServices[name]; !ok {
    36  		return c_ERROR_SERVICE_DOES_NOT_EXIST
    37  	} else {
    38  		svc.running = false
    39  	}
    40  	return nil
    41  }
    42  
    43  func (s *StubSvcManager) Delete(name string) error {
    44  	s.Stub.AddCall("Delete", name)
    45  
    46  	if _, ok := MgrServices[name]; !ok {
    47  		return c_ERROR_SERVICE_DOES_NOT_EXIST
    48  	}
    49  	delete(MgrServices, name)
    50  	return nil
    51  }
    52  
    53  func (s *StubSvcManager) Create(name string, conf common.Conf) error {
    54  	s.Stub.AddCall("Create", name, conf)
    55  
    56  	if _, ok := MgrServices[name]; ok {
    57  		return c_ERROR_SERVICE_EXISTS
    58  	}
    59  
    60  	MgrServices[name] = &service{
    61  		running: false,
    62  		conf:    conf,
    63  	}
    64  	return nil
    65  }
    66  
    67  func (s *StubSvcManager) Running(name string) (bool, error) {
    68  	s.Stub.AddCall("Running", name)
    69  
    70  	if svc, ok := MgrServices[name]; ok {
    71  		return svc.running, nil
    72  	}
    73  	return false, c_ERROR_SERVICE_DOES_NOT_EXIST
    74  }
    75  
    76  func (s *StubSvcManager) Exists(name string, conf common.Conf) (bool, error) {
    77  	if _, ok := MgrServices[name]; ok {
    78  		return true, nil
    79  	}
    80  	return false, nil
    81  }
    82  
    83  // For now this doesn't do much since it doesn't help us test anything
    84  // but we need it to implement the interface
    85  func (s *StubSvcManager) ChangeServicePassword(name, newPassword string) error {
    86  	s.Stub.AddCall("ChangeServicePassword", name, newPassword)
    87  
    88  	if _, ok := MgrServices[name]; !ok {
    89  		return c_ERROR_SERVICE_DOES_NOT_EXIST
    90  	}
    91  
    92  	return nil
    93  }
    94  
    95  func (s *StubSvcManager) ListServices() ([]string, error) {
    96  	s.Stub.AddCall("listServices")
    97  
    98  	services := []string{}
    99  	for i := range MgrServices {
   100  		services = append(services, i)
   101  	}
   102  	return services, s.NextErr()
   103  }
   104  
   105  func (s *StubSvcManager) Clear() {
   106  	MgrServices = map[string]*service{}
   107  }