選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

modes_test.go 972B

12345678910111213141516171819202122232425262728293031323334353637
  1. // Copyright (c) 2018 Shivaram Lingamneni
  2. // released under the MIT license
  3. package modes
  4. import (
  5. "reflect"
  6. "testing"
  7. )
  8. func TestSetMode(t *testing.T) {
  9. set := NewModeSet()
  10. if applied := set.SetMode(Invisible, false); applied != false {
  11. t.Errorf("all modes should be false by default")
  12. }
  13. if applied := set.SetMode(Invisible, true); applied != true {
  14. t.Errorf("initial SetMode call should return true")
  15. }
  16. set.SetMode(Operator, true)
  17. if applied := set.SetMode(Invisible, true); applied != false {
  18. t.Errorf("redundant SetMode call should return false")
  19. }
  20. expected1 := []Mode{Invisible, Operator}
  21. expected2 := []Mode{Operator, Invisible}
  22. if allModes := set.AllModes(); !(reflect.DeepEqual(allModes, expected1) || reflect.DeepEqual(allModes, expected2)) {
  23. t.Errorf("unexpected AllModes value: %v", allModes)
  24. }
  25. if modeString := set.String(); !(modeString == "io" || modeString == "oi") {
  26. t.Errorf("unexpected modestring: %s", modeString)
  27. }
  28. }