您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

utils_test.go 1.6KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. // Copyright (c) 2020 Shivaram Lingamneni
  2. // released under the MIT license
  3. package sno
  4. import (
  5. "fmt"
  6. "reflect"
  7. "testing"
  8. )
  9. func assertEqual(supplied, expected interface{}, t *testing.T) {
  10. if !reflect.DeepEqual(supplied, expected) {
  11. panic(fmt.Sprintf("expected %#v but got %#v", expected, supplied))
  12. }
  13. }
  14. func TestEvaluateSnomaskChanges(t *testing.T) {
  15. add, remove, newArg := EvaluateSnomaskChanges(true, "*", nil)
  16. assertEqual(add, Masks{'a', 'c', 'd', 'j', 'k', 'n', 'o', 'q', 't', 'u', 'v', 'x'}, t)
  17. assertEqual(len(remove), 0, t)
  18. assertEqual(newArg, "+acdjknoqtuvx", t)
  19. add, remove, newArg = EvaluateSnomaskChanges(true, "*", Masks{'a', 'u'})
  20. assertEqual(add, Masks{'c', 'd', 'j', 'k', 'n', 'o', 'q', 't', 'v', 'x'}, t)
  21. assertEqual(len(remove), 0, t)
  22. assertEqual(newArg, "+cdjknoqtvx", t)
  23. add, remove, newArg = EvaluateSnomaskChanges(true, "-a", Masks{'a', 'u'})
  24. assertEqual(len(add), 0, t)
  25. assertEqual(remove, Masks{'a'}, t)
  26. assertEqual(newArg, "-a", t)
  27. add, remove, newArg = EvaluateSnomaskChanges(true, "-*", Masks{'a', 'u'})
  28. assertEqual(len(add), 0, t)
  29. assertEqual(remove, Masks{'a', 'u'}, t)
  30. assertEqual(newArg, "-au", t)
  31. add, remove, newArg = EvaluateSnomaskChanges(true, "+c", Masks{'a', 'u'})
  32. assertEqual(add, Masks{'c'}, t)
  33. assertEqual(len(remove), 0, t)
  34. assertEqual(newArg, "+c", t)
  35. add, remove, newArg = EvaluateSnomaskChanges(false, "", Masks{'a', 'u'})
  36. assertEqual(len(add), 0, t)
  37. assertEqual(remove, Masks{'a', 'u'}, t)
  38. assertEqual(newArg, "", t)
  39. add, remove, newArg = EvaluateSnomaskChanges(false, "*", Masks{'a', 'u'})
  40. assertEqual(len(add), 0, t)
  41. assertEqual(remove, Masks{'a', 'u'}, t)
  42. assertEqual(newArg, "", t)
  43. }