trie_test.go 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. package framework
  2. import "testing"
  3. func Test_filterChildNodes(t *testing.T) {
  4. root := &node{
  5. isLast: false,
  6. segment: "",
  7. handler: func(*Context) error { return nil },
  8. childes: []*node{
  9. {
  10. isLast: true,
  11. segment: "FOO",
  12. handler: func(*Context) error { return nil },
  13. childes: nil,
  14. },
  15. {
  16. isLast: false,
  17. segment: ":id",
  18. handler: nil,
  19. childes: nil,
  20. },
  21. },
  22. }
  23. {
  24. nodes := root.filterChildNodes("FOO")
  25. if len(nodes) != 2 {
  26. t.Error("foo error")
  27. }
  28. }
  29. {
  30. nodes := root.filterChildNodes(":foo")
  31. if len(nodes) != 2 {
  32. t.Error(":foo error")
  33. }
  34. }
  35. }
  36. func Test_matchNode(t *testing.T) {
  37. root := &node{
  38. isLast: false,
  39. segment: "",
  40. handler: func(*Context) error { return nil },
  41. childes: []*node{
  42. {
  43. isLast: true,
  44. segment: "FOO",
  45. handler: nil,
  46. childes: []*node{
  47. {
  48. isLast: true,
  49. segment: "BAR",
  50. handler: func(*Context) error { panic("not implemented") },
  51. childes: []*node{},
  52. },
  53. },
  54. },
  55. {
  56. isLast: true,
  57. segment: ":id",
  58. handler: nil,
  59. childes: nil,
  60. },
  61. },
  62. }
  63. {
  64. node := root.matchNode("foo/bar")
  65. if node == nil {
  66. t.Error("match normal node error")
  67. }
  68. }
  69. {
  70. node := root.matchNode("test")
  71. if node == nil {
  72. t.Error("match test")
  73. }
  74. }
  75. }