config_helpers_test.go 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. package config
  2. import (
  3. "testing"
  4. "github.com/stretchr/testify/assert"
  5. )
  6. func TestFindAction(t *testing.T) {
  7. c := DefaultConfig()
  8. a1 := &Action{}
  9. a1.Title = "a1"
  10. c.Actions = append(c.Actions, a1)
  11. a2 := &Action{
  12. Title: "a2",
  13. Arguments: []ActionArgument{
  14. {
  15. Name: "Blat",
  16. },
  17. },
  18. }
  19. c.Actions = append(c.Actions, a2)
  20. assert.NotNil(t, c.findAction("a1"), "Find action a1")
  21. assert.NotNil(t, c.findAction("a2"), "Find action a2")
  22. assert.NotNil(t, c.findAction("a2").FindArg("Blat"), "Find action argument")
  23. assert.Nil(t, c.findAction("a2").FindArg("Blatey Cake"), "Find non-existent action argument")
  24. assert.Nil(t, c.findAction("waffles"), "Find non-existent action")
  25. }
  26. func TestFindAcl(t *testing.T) {
  27. c := DefaultConfig()
  28. acl1 := &AccessControlList{
  29. Name: "Testing ACL",
  30. }
  31. c.AccessControlLists = append(c.AccessControlLists, acl1)
  32. assert.NotNil(t, c.FindAcl("Testing ACL"), "Find a ACL that should exist")
  33. assert.Nil(t, c.FindAcl("Chocolate Cake"), "Find a ACL that does not exist")
  34. }
  35. func TestSetDir(t *testing.T) {
  36. c := DefaultConfig()
  37. c.SetDir("test")
  38. assert.Equal(t, "test", c.GetDir(), "SetDir")
  39. }
  40. func TestFindUserByUsername(t *testing.T) {
  41. c := DefaultConfig()
  42. // Test with empty users list
  43. assert.Nil(t, c.FindUserByUsername("nonexistent"), "Find user in empty list should return nil")
  44. // Add test users
  45. user1 := &LocalUser{
  46. Username: "admin",
  47. Usergroup: "admin",
  48. Password: "adminpass",
  49. }
  50. user2 := &LocalUser{
  51. Username: "guest",
  52. Usergroup: "guest",
  53. Password: "guestpass",
  54. }
  55. c.AuthLocalUsers.Users = append(c.AuthLocalUsers.Users, user1, user2)
  56. // Test finding existing users
  57. foundUser := c.FindUserByUsername("admin")
  58. assert.NotNil(t, foundUser, "Find existing user 'admin'")
  59. assert.Equal(t, "admin", foundUser.Username, "Found user should have correct username")
  60. assert.Equal(t, "admin", foundUser.Usergroup, "Found user should have correct usergroup")
  61. assert.Equal(t, "adminpass", foundUser.Password, "Found user should have correct password")
  62. foundUser = c.FindUserByUsername("guest")
  63. assert.NotNil(t, foundUser, "Find existing user 'guest'")
  64. assert.Equal(t, "guest", foundUser.Username, "Found user should have correct username")
  65. assert.Equal(t, "guest", foundUser.Usergroup, "Found user should have correct usergroup")
  66. // Test finding non-existent user
  67. assert.Nil(t, c.FindUserByUsername("nonexistent"), "Find non-existent user should return nil")
  68. assert.Nil(t, c.FindUserByUsername(""), "Find empty username should return nil")
  69. }