Bladeren bron

Change Behavior of Get function on Prefixed Registry to be more consistent. Update tests.

Dan Richelson 9 jaren geleden
bovenliggende
commit
15904c08a4
2 gewijzigde bestanden met toevoegingen van 55 en 7 verwijderingen
  1. 2 1
      registry.go
  2. 53 6
      registry_test.go

+ 2 - 1
registry.go

@@ -171,7 +171,8 @@ func (r *PrefixedRegistry) Each(fn func(string, interface{})) {
 
 // Get the metric by the given name or nil if none is registered.
 func (r *PrefixedRegistry) Get(name string) interface{} {
-	return r.underlying.Get(name)
+	realName := r.prefix + name
+	return r.underlying.Get(realName)
 }
 
 // Gets an existing metric or registers the given one.

+ 53 - 6
registry_test.go

@@ -1,6 +1,8 @@
 package metrics
 
-import "testing"
+import (
+	"testing"
+)
 
 func BenchmarkRegistry(b *testing.B) {
 	r := NewRegistry()
@@ -121,53 +123,76 @@ func TestPrefixedChildRegistryGetOrRegister(t *testing.T) {
 	r := NewRegistry()
 	pr := NewPrefixedChildRegistry(r, "prefix.")
 
-	_ = pr.GetOrRegister("foo", NewCounter)
+	_ = pr.GetOrRegister("foo", NewCounter())
 
+	i := 0
 	r.Each(func(name string, m interface{}) {
+		i++
 		if name != "prefix.foo" {
 			t.Fatal(name)
 		}
 	})
+	if i != 1 {
+		t.Fatal(i)
+	}
 }
 
 func TestPrefixedRegistryGetOrRegister(t *testing.T) {
 	r := NewPrefixedRegistry("prefix.")
 
-	_ = r.GetOrRegister("foo", NewCounter)
+	_ = r.GetOrRegister("foo", NewCounter())
 
+	i := 0
 	r.Each(func(name string, m interface{}) {
+		i++
 		if name != "prefix.foo" {
 			t.Fatal(name)
 		}
 	})
+	if i != 1 {
+		t.Fatal(i)
+	}
 }
 
 func TestPrefixedRegistryRegister(t *testing.T) {
 	r := NewPrefixedRegistry("prefix.")
 
-	_ = r.Register("foo", NewCounter)
+	err := r.Register("foo", NewCounter())
+	if err != nil {
+		t.Fatal(err.Error())
+	}
 
+	i := 0
 	r.Each(func(name string, m interface{}) {
+		i++
 		if name != "prefix.foo" {
 			t.Fatal(name)
 		}
 	})
+	if i != 1 {
+		t.Fatal(i)
+	}
 }
 
 func TestPrefixedRegistryUnregister(t *testing.T) {
 	r := NewPrefixedRegistry("prefix.")
 
-	_ = r.Register("foo", NewCounter)
+	_ = r.Register("foo", NewCounter())
 
+	i := 0
 	r.Each(func(name string, m interface{}) {
+		i++
 		if name != "prefix.foo" {
 			t.Fatal(name)
 		}
 	})
+	if i != 1 {
+		t.Fatal(i)
+	}
 
 	r.Unregister("foo")
 
-	i := 0
+	i = 0
 	r.Each(func(name string, m interface{}) {
 		i++
 	})
@@ -176,3 +201,25 @@ func TestPrefixedRegistryUnregister(t *testing.T) {
 		t.Fatal(i)
 	}
 }
+
+func TestPrefixedRegistryGet(t *testing.T) {
+	pr := NewPrefixedRegistry("prefix.")
+	name := "foo"
+	pr.Register(name, NewCounter())
+
+	fooCounter := pr.Get(name)
+	if fooCounter == nil {
+		t.Fatal(name)
+	}
+}
+
+func TestPrefixedChildRegistryGet(t *testing.T) {
+	r := NewRegistry()
+	pr := NewPrefixedChildRegistry(r, "prefix.")
+	name := "foo"
+	pr.Register(name, NewCounter())
+	fooCounter := pr.Get(name)
+	if fooCounter == nil {
+		t.Fatal(name)
+	}
+}