config_test.go 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. package sarama
  2. import (
  3. "os"
  4. "testing"
  5. "github.com/rcrowley/go-metrics"
  6. )
  7. func TestDefaultConfigValidates(t *testing.T) {
  8. config := NewConfig()
  9. if err := config.Validate(); err != nil {
  10. t.Error(err)
  11. }
  12. if config.MetricRegistry != metrics.DefaultRegistry {
  13. t.Error("Expected metrics.DefaultRegistry, got ", config.MetricRegistry)
  14. }
  15. }
  16. func TestInvalidClientIDConfigValidates(t *testing.T) {
  17. config := NewConfig()
  18. config.ClientID = "foo:bar"
  19. if err := config.Validate(); string(err.(ConfigurationError)) != "ClientID is invalid" {
  20. t.Error("Expected invalid ClientID, got ", err)
  21. }
  22. }
  23. func TestEmptyClientIDConfigValidates(t *testing.T) {
  24. config := NewConfig()
  25. config.ClientID = ""
  26. if err := config.Validate(); string(err.(ConfigurationError)) != "ClientID is invalid" {
  27. t.Error("Expected invalid ClientID, got ", err)
  28. }
  29. }
  30. // This example shows how to integrate with an existing registry as well as publishing metrics
  31. // on the standard output
  32. func ExampleConfig_metrics() {
  33. // Our application registry
  34. appMetricRegistry := metrics.NewRegistry()
  35. appGauge := metrics.GetOrRegisterGauge("m1", appMetricRegistry)
  36. appGauge.Update(1)
  37. config := NewConfig()
  38. // Use a prefix registry instead of the default global one
  39. config.MetricRegistry = metrics.NewPrefixedChildRegistry(appMetricRegistry, "sarama.")
  40. // Simulate a metric created by sarama without starting a broker
  41. saramaGauge := metrics.GetOrRegisterGauge("m2", config.MetricRegistry)
  42. saramaGauge.Update(2)
  43. metrics.WriteOnce(appMetricRegistry, os.Stdout)
  44. // Output:
  45. // gauge m1
  46. // value: 1
  47. // gauge sarama.m2
  48. // value: 2
  49. }