62 lines
1.1 KiB
Go
62 lines
1.1 KiB
Go
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())
|
|
}
|
|
}
|