github.com/Pankov404/juju@v0.0.0-20150703034450-be266991dceb/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 func (s *StubSvcManager) ListServices() ([]string, error) { 84 s.Stub.AddCall("listServices") 85 86 services := []string{} 87 for i := range MgrServices { 88 services = append(services, i) 89 } 90 return services, s.NextErr() 91 } 92 93 func (s *StubSvcManager) Clear() { 94 MgrServices = map[string]*service{} 95 }