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  }