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()) } }