Create crond scheduler and dependencies and store to disk
This commit is contained in:
61
scheduler/scheduler_test.go
Normal file
61
scheduler/scheduler_test.go
Normal file
@@ -0,0 +1,61 @@
|
||||
package scheduler
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"local/firestormy/config"
|
||||
"local/storage"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestSchedulerAddRemove(t *testing.T) {
|
||||
config.Store, _ = storage.New(storage.MAP)
|
||||
s := New()
|
||||
j, err := NewJob(Bash, "@hourly", "hostname")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if err := s.Add(j); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if list, err := s.List(); err != nil {
|
||||
t.Fatal(err)
|
||||
} else if len(list) != 1 {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if err := s.Remove(j); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if list, err := s.List(); err != nil {
|
||||
t.Fatal(err)
|
||||
} else if len(list) != 0 {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestSchedulerStartStop(t *testing.T) {
|
||||
b, clean := captureLog()
|
||||
defer clean()
|
||||
config.Store, _ = storage.New(storage.MAP)
|
||||
|
||||
s := New()
|
||||
for i := 0; i < 5; i++ {
|
||||
j, err := NewJob(Bash, "* * * * *", "hostname")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if err := s.Add(j); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
if err := s.Start(); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if err := s.Stop(); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
if n := bytes.Count(b.Bytes(), []byte("schedule")); n != 5 {
|
||||
t.Errorf("%v: %s", n, b.Bytes())
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user