github.com/ngicks/gokugen@v0.0.5/scheduler/state_test.go (about) 1 package scheduler 2 3 import "testing" 4 5 func TestState(t *testing.T) { 6 t.Run("workingState", func(t *testing.T) { 7 s := workingState{} 8 9 if s.IsWorking() { 10 t.Fatalf("initial state: must not be working") 11 } 12 13 if !s.setWorking() { 14 t.Fatalf("swapped faild") 15 } 16 if !s.IsWorking() { 17 t.Fatalf("setWorking with no arg must set it to wroking") 18 } 19 if !s.setWorking(false) { 20 t.Fatalf("swapped faild") 21 } 22 if s.IsWorking() { 23 t.Fatalf("setWorking with false set it to non-wroking") 24 } 25 if s.setWorking(false) { 26 t.Fatalf("swapped faild") 27 } 28 if !s.setWorking(true) { 29 t.Fatalf("swapped faild") 30 } 31 if !s.IsWorking() { 32 t.Fatalf("setWorking with true set it to wroking") 33 } 34 if s.setWorking(true) { 35 t.Fatalf("swapped faild") 36 } 37 }) 38 t.Run("endState", func(t *testing.T) { 39 s := endState{} 40 41 if s.IsEnded() { 42 t.Fatalf("initial state: must not be working") 43 } 44 45 if !s.setEnded() { 46 t.Fatalf("swapped faild") 47 } 48 if !s.IsEnded() { 49 t.Fatalf("setWorking with no arg must set it to wroking") 50 } 51 if s.setEnded() { 52 t.Fatalf("swapped faild") 53 } 54 }) 55 }