authenticateduser_test.go 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. package authpublic
  2. import (
  3. "testing"
  4. "github.com/stretchr/testify/assert"
  5. )
  6. func Test_parseUsergroupLine(t *testing.T) {
  7. tests := []struct {
  8. name string
  9. usergroupLine string
  10. expectedGroups []string
  11. sep string
  12. }{
  13. {
  14. name: "Default separator (space)",
  15. usergroupLine: "group1 group2",
  16. expectedGroups: []string{"group1", "group2"},
  17. },
  18. {
  19. name: "Comma-separated groups",
  20. usergroupLine: "group1 , group2",
  21. expectedGroups: []string{"group1", "group2"},
  22. sep: ",",
  23. },
  24. {
  25. name: "Multiple spaces",
  26. usergroupLine: "group1 , group2 , group3",
  27. expectedGroups: []string{"group1", "group2", "group3"},
  28. sep: ",",
  29. },
  30. {
  31. name: "Empty usergroup line",
  32. usergroupLine: "",
  33. expectedGroups: []string{},
  34. },
  35. {
  36. name: "Empty group names",
  37. usergroupLine: "|group1| | group3|",
  38. expectedGroups: []string{"group1", "group3"},
  39. sep: "|",
  40. },
  41. }
  42. for _, tt := range tests {
  43. t.Run(tt.name, func(t *testing.T) {
  44. user := &AuthenticatedUser{
  45. Username: "testuser",
  46. UsergroupLine: tt.usergroupLine,
  47. }
  48. assert.Equal(t, tt.expectedGroups, user.parseUsergroupLine(tt.sep))
  49. })
  50. }
  51. }