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  }