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 }