github.com/mattermost/mattermost-server/v5@v5.39.3/jobs/server_test.go (about) 1 // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. 2 // See LICENSE.txt for license information. 3 4 package jobs 5 6 import ( 7 "testing" 8 9 "github.com/stretchr/testify/require" 10 ) 11 12 func TestInitWorkers(t *testing.T) { 13 t.Run("initialize", func(t *testing.T) { 14 jobServer, _, _ := makeJobServer(t) 15 err := jobServer.InitWorkers() 16 require.NoError(t, err) 17 }) 18 19 t.Run("re-initialize", func(t *testing.T) { 20 jobServer, _, _ := makeJobServer(t) 21 err := jobServer.InitWorkers() 22 require.NoError(t, err) 23 err = jobServer.InitWorkers() 24 require.NoError(t, err) 25 }) 26 27 t.Run("re-initialize already running", func(t *testing.T) { 28 jobServer, _, _ := makeJobServer(t) 29 err := jobServer.InitWorkers() 30 require.NoError(t, err) 31 32 err = jobServer.StartWorkers() 33 require.NoError(t, err) 34 35 err = jobServer.InitWorkers() 36 require.Equal(t, ErrWorkersRunning, err) 37 38 err = jobServer.StopWorkers() 39 require.NoError(t, err) 40 41 err = jobServer.InitWorkers() 42 require.NoError(t, err) 43 }) 44 } 45 46 func TestStartWorkers(t *testing.T) { 47 t.Run("uninitialized", func(t *testing.T) { 48 jobServer, _, _ := makeJobServer(t) 49 err := jobServer.StartWorkers() 50 require.Equal(t, ErrWorkersUninitialized, err) 51 }) 52 53 t.Run("already running", func(t *testing.T) { 54 jobServer, _, _ := makeJobServer(t) 55 err := jobServer.InitWorkers() 56 require.NoError(t, err) 57 err = jobServer.StartWorkers() 58 require.NoError(t, err) 59 err = jobServer.StartWorkers() 60 require.Equal(t, ErrWorkersRunning, err) 61 err = jobServer.StopWorkers() 62 require.NoError(t, err) 63 }) 64 65 t.Run("not running", func(t *testing.T) { 66 jobServer, _, _ := makeJobServer(t) 67 err := jobServer.InitWorkers() 68 require.NoError(t, err) 69 err = jobServer.StartWorkers() 70 require.NoError(t, err) 71 err = jobServer.StopWorkers() 72 require.NoError(t, err) 73 }) 74 } 75 76 func TestStopWorkers(t *testing.T) { 77 t.Run("uninitialized", func(t *testing.T) { 78 jobServer, _, _ := makeJobServer(t) 79 err := jobServer.StopWorkers() 80 require.Equal(t, ErrWorkersUninitialized, err) 81 }) 82 83 t.Run("not running", func(t *testing.T) { 84 jobServer, _, _ := makeJobServer(t) 85 err := jobServer.InitWorkers() 86 require.NoError(t, err) 87 err = jobServer.StopWorkers() 88 require.Equal(t, ErrWorkersNotRunning, err) 89 }) 90 91 t.Run("running", func(t *testing.T) { 92 jobServer, _, _ := makeJobServer(t) 93 err := jobServer.InitWorkers() 94 require.NoError(t, err) 95 err = jobServer.StartWorkers() 96 require.NoError(t, err) 97 err = jobServer.StopWorkers() 98 require.NoError(t, err) 99 }) 100 } 101 102 func TestInitSchedulers(t *testing.T) { 103 t.Run("initialize", func(t *testing.T) { 104 jobServer, _, _ := makeJobServer(t) 105 err := jobServer.InitSchedulers() 106 require.NoError(t, err) 107 }) 108 109 t.Run("re-initialize", func(t *testing.T) { 110 jobServer, _, _ := makeJobServer(t) 111 err := jobServer.InitSchedulers() 112 require.NoError(t, err) 113 err = jobServer.InitSchedulers() 114 require.NoError(t, err) 115 }) 116 117 t.Run("re-initialize already running", func(t *testing.T) { 118 jobServer, _, _ := makeJobServer(t) 119 err := jobServer.InitSchedulers() 120 require.NoError(t, err) 121 122 err = jobServer.StartSchedulers() 123 require.NoError(t, err) 124 125 err = jobServer.InitSchedulers() 126 require.Equal(t, ErrSchedulersRunning, err) 127 128 err = jobServer.StopSchedulers() 129 require.NoError(t, err) 130 131 err = jobServer.InitSchedulers() 132 require.NoError(t, err) 133 }) 134 } 135 136 func TestStartSchedulers(t *testing.T) { 137 t.Run("uninitialized", func(t *testing.T) { 138 jobServer, _, _ := makeJobServer(t) 139 err := jobServer.StartSchedulers() 140 require.Equal(t, ErrSchedulersUninitialized, err) 141 }) 142 143 t.Run("initialized", func(t *testing.T) { 144 jobServer, _, _ := makeJobServer(t) 145 err := jobServer.InitSchedulers() 146 require.NoError(t, err) 147 err = jobServer.StartSchedulers() 148 require.NoError(t, err) 149 150 err = jobServer.StopSchedulers() 151 require.NoError(t, err) 152 }) 153 154 t.Run("already running", func(t *testing.T) { 155 jobServer, _, _ := makeJobServer(t) 156 err := jobServer.InitSchedulers() 157 require.NoError(t, err) 158 err = jobServer.StartSchedulers() 159 require.NoError(t, err) 160 err = jobServer.StartSchedulers() 161 require.Equal(t, ErrSchedulersRunning, err) 162 163 err = jobServer.StopSchedulers() 164 require.NoError(t, err) 165 }) 166 } 167 168 func TestStopSchedulers(t *testing.T) { 169 t.Run("uninitialized", func(t *testing.T) { 170 jobServer, _, _ := makeJobServer(t) 171 err := jobServer.StopSchedulers() 172 require.Equal(t, ErrSchedulersUninitialized, err) 173 }) 174 175 t.Run("not running", func(t *testing.T) { 176 jobServer, _, _ := makeJobServer(t) 177 err := jobServer.InitSchedulers() 178 require.NoError(t, err) 179 err = jobServer.StopSchedulers() 180 require.Equal(t, ErrSchedulersNotRunning, err) 181 }) 182 183 t.Run("running", func(t *testing.T) { 184 jobServer, _, _ := makeJobServer(t) 185 err := jobServer.InitSchedulers() 186 require.NoError(t, err) 187 err = jobServer.StartSchedulers() 188 require.NoError(t, err) 189 err = jobServer.StopSchedulers() 190 require.NoError(t, err) 191 }) 192 }