| 
									
										
										
										
											2018-02-23 10:56:08 +01:00
										 |  |  | package metrics | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | import "testing" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | func BenchmarkCounter(b *testing.B) { | 
					
						
							|  |  |  | 	c := NewCounter() | 
					
						
							|  |  |  | 	b.ResetTimer() | 
					
						
							|  |  |  | 	for i := 0; i < b.N; i++ { | 
					
						
							|  |  |  | 		c.Inc(1) | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | func TestCounterClear(t *testing.T) { | 
					
						
							|  |  |  | 	c := NewCounter() | 
					
						
							|  |  |  | 	c.Inc(1) | 
					
						
							|  |  |  | 	c.Clear() | 
					
						
							| 
									
										
										
										
											2019-11-22 16:04:35 +01:00
										 |  |  | 	if count := c.Count(); count != 0 { | 
					
						
							| 
									
										
										
										
											2018-02-23 10:56:08 +01:00
										 |  |  | 		t.Errorf("c.Count(): 0 != %v\n", count) | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | func TestCounterDec1(t *testing.T) { | 
					
						
							|  |  |  | 	c := NewCounter() | 
					
						
							|  |  |  | 	c.Dec(1) | 
					
						
							| 
									
										
										
										
											2019-11-22 16:04:35 +01:00
										 |  |  | 	if count := c.Count(); count != -1 { | 
					
						
							| 
									
										
										
										
											2018-02-23 10:56:08 +01:00
										 |  |  | 		t.Errorf("c.Count(): -1 != %v\n", count) | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | func TestCounterDec2(t *testing.T) { | 
					
						
							|  |  |  | 	c := NewCounter() | 
					
						
							|  |  |  | 	c.Dec(2) | 
					
						
							| 
									
										
										
										
											2019-11-22 16:04:35 +01:00
										 |  |  | 	if count := c.Count(); count != -2 { | 
					
						
							| 
									
										
										
										
											2018-02-23 10:56:08 +01:00
										 |  |  | 		t.Errorf("c.Count(): -2 != %v\n", count) | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | func TestCounterInc1(t *testing.T) { | 
					
						
							|  |  |  | 	c := NewCounter() | 
					
						
							|  |  |  | 	c.Inc(1) | 
					
						
							| 
									
										
										
										
											2019-11-22 16:04:35 +01:00
										 |  |  | 	if count := c.Count(); count != 1 { | 
					
						
							| 
									
										
										
										
											2018-02-23 10:56:08 +01:00
										 |  |  | 		t.Errorf("c.Count(): 1 != %v\n", count) | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | func TestCounterInc2(t *testing.T) { | 
					
						
							|  |  |  | 	c := NewCounter() | 
					
						
							|  |  |  | 	c.Inc(2) | 
					
						
							| 
									
										
										
										
											2019-11-22 16:04:35 +01:00
										 |  |  | 	if count := c.Count(); count != 2 { | 
					
						
							| 
									
										
										
										
											2018-02-23 10:56:08 +01:00
										 |  |  | 		t.Errorf("c.Count(): 2 != %v\n", count) | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | func TestCounterSnapshot(t *testing.T) { | 
					
						
							|  |  |  | 	c := NewCounter() | 
					
						
							|  |  |  | 	c.Inc(1) | 
					
						
							|  |  |  | 	snapshot := c.Snapshot() | 
					
						
							|  |  |  | 	c.Inc(1) | 
					
						
							| 
									
										
										
										
											2019-11-22 16:04:35 +01:00
										 |  |  | 	if count := snapshot.Count(); count != 1 { | 
					
						
							| 
									
										
										
										
											2018-02-23 10:56:08 +01:00
										 |  |  | 		t.Errorf("c.Count(): 1 != %v\n", count) | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | func TestCounterZero(t *testing.T) { | 
					
						
							|  |  |  | 	c := NewCounter() | 
					
						
							| 
									
										
										
										
											2019-11-22 16:04:35 +01:00
										 |  |  | 	if count := c.Count(); count != 0 { | 
					
						
							| 
									
										
										
										
											2018-02-23 10:56:08 +01:00
										 |  |  | 		t.Errorf("c.Count(): 0 != %v\n", count) | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | func TestGetOrRegisterCounter(t *testing.T) { | 
					
						
							|  |  |  | 	r := NewRegistry() | 
					
						
							|  |  |  | 	NewRegisteredCounter("foo", r).Inc(47) | 
					
						
							| 
									
										
										
										
											2019-11-22 16:04:35 +01:00
										 |  |  | 	if c := GetOrRegisterCounter("foo", r); c.Count() != 47 { | 
					
						
							| 
									
										
										
										
											2018-02-23 10:56:08 +01:00
										 |  |  | 		t.Fatal(c) | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | } |