config_test.go 3.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. package kubecost
  2. import "testing"
  3. func TestLabelConfig_Map(t *testing.T) {
  4. var m map[string]string
  5. var lc *LabelConfig
  6. m = lc.Map()
  7. if len(m) != 18 {
  8. t.Fatalf("Map: expected length %d; got length %d", 18, len(m))
  9. }
  10. if val, ok := m["deployment_external_label"]; !ok || val != "kubernetes_deployment" {
  11. t.Fatalf("Map: expected %s; got %s", "kubernetes_deployment", val)
  12. }
  13. if val, ok := m["namespace_external_label"]; !ok || val != "kubernetes_namespace" {
  14. t.Fatalf("Map: expected %s; got %s", "kubernetes_namespace", val)
  15. }
  16. lc = &LabelConfig{
  17. DaemonsetExternalLabel: "kubernetes_ds",
  18. }
  19. m = lc.Map()
  20. if len(m) != 18 {
  21. t.Fatalf("Map: expected length %d; got length %d", 18, len(m))
  22. }
  23. if val, ok := m["daemonset_external_label"]; !ok || val != "kubernetes_ds" {
  24. t.Fatalf("Map: expected %s; got %s", "kubernetes_ds", val)
  25. }
  26. if val, ok := m["namespace_external_label"]; !ok || val != "kubernetes_namespace" {
  27. t.Fatalf("Map: expected %s; got %s", "kubernetes_namespace", val)
  28. }
  29. }
  30. func TestLabelConfig_ExternalQueryLabels(t *testing.T) {
  31. var qls map[string]string
  32. var lc *LabelConfig
  33. qls = lc.ExternalQueryLabels()
  34. if len(qls) != 13 {
  35. t.Fatalf("ExternalQueryLabels: expected length %d; got length %d", 13, len(qls))
  36. }
  37. if val, ok := qls["kubernetes_deployment"]; !ok || val != "deployment_external_label" {
  38. t.Fatalf("ExternalQueryLabels: expected %s; got %s", "deployment_external_label", val)
  39. }
  40. if val, ok := qls["kubernetes_namespace"]; !ok || val != "namespace_external_label" {
  41. t.Fatalf("ExternalQueryLabels: expected %s; got %s", "namespace_external_label", val)
  42. }
  43. lc = &LabelConfig{
  44. DaemonsetExternalLabel: "kubernetes_ds",
  45. }
  46. qls = lc.ExternalQueryLabels()
  47. if len(qls) != 13 {
  48. t.Fatalf("ExternalQueryLabels: expected length %d; got length %d", 13, len(qls))
  49. }
  50. if val, ok := qls["kubernetes_ds"]; !ok || val != "daemonset_external_label" {
  51. t.Fatalf("ExternalQueryLabels: expected %s; got %s", "daemonset_external_label", val)
  52. }
  53. if val, ok := qls["kubernetes_namespace"]; !ok || val != "namespace_external_label" {
  54. t.Fatalf("ExternalQueryLabels: expected %s; got %s", "namespace_external_label", val)
  55. }
  56. }
  57. func TestTestLabelConfig_AllocationPropertyLabels(t *testing.T) {
  58. var labels map[string]string
  59. var lc *LabelConfig
  60. labels = lc.AllocationPropertyLabels()
  61. if len(labels) != 18 {
  62. t.Fatalf("AllocationPropertyLabels: expected length %d; got length %d", 18, len(labels))
  63. }
  64. if val, ok := labels["namespace"]; !ok || val != "kubernetes_namespace" {
  65. t.Fatalf("AllocationPropertyLabels: expected %s; got %s", "kubernetes_namespace", val)
  66. }
  67. if val, ok := labels["label:env"]; !ok || val != "env" {
  68. t.Fatalf("AllocationPropertyLabels: expected %s; got %s", "env", val)
  69. }
  70. lc = &LabelConfig{
  71. NamespaceExternalLabel: "kubens",
  72. EnvironmentLabel: "kubeenv",
  73. }
  74. labels = lc.AllocationPropertyLabels()
  75. if len(labels) != 18 {
  76. t.Fatalf("AllocationPropertyLabels: expected length %d; got length %d", 18, len(labels))
  77. }
  78. if val, ok := labels["namespace"]; !ok || val != "kubens" {
  79. t.Fatalf("AllocationPropertyLabels: expected %s; got %s", "kubens", val)
  80. }
  81. if val, ok := labels["label:kubeenv"]; !ok || val != "kubeenv" {
  82. t.Fatalf("AllocationPropertyLabels: expected %s; got %s", "kubeenv", val)
  83. }
  84. }