78 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
		
		
			
		
	
	
			78 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| 
								 | 
							
								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()
							 | 
						||
| 
								 | 
							
									if count := c.Count(); 0 != count {
							 | 
						||
| 
								 | 
							
										t.Errorf("c.Count(): 0 != %v\n", count)
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								func TestCounterDec1(t *testing.T) {
							 | 
						||
| 
								 | 
							
									c := NewCounter()
							 | 
						||
| 
								 | 
							
									c.Dec(1)
							 | 
						||
| 
								 | 
							
									if count := c.Count(); -1 != count {
							 | 
						||
| 
								 | 
							
										t.Errorf("c.Count(): -1 != %v\n", count)
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								func TestCounterDec2(t *testing.T) {
							 | 
						||
| 
								 | 
							
									c := NewCounter()
							 | 
						||
| 
								 | 
							
									c.Dec(2)
							 | 
						||
| 
								 | 
							
									if count := c.Count(); -2 != count {
							 | 
						||
| 
								 | 
							
										t.Errorf("c.Count(): -2 != %v\n", count)
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								func TestCounterInc1(t *testing.T) {
							 | 
						||
| 
								 | 
							
									c := NewCounter()
							 | 
						||
| 
								 | 
							
									c.Inc(1)
							 | 
						||
| 
								 | 
							
									if count := c.Count(); 1 != count {
							 | 
						||
| 
								 | 
							
										t.Errorf("c.Count(): 1 != %v\n", count)
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								func TestCounterInc2(t *testing.T) {
							 | 
						||
| 
								 | 
							
									c := NewCounter()
							 | 
						||
| 
								 | 
							
									c.Inc(2)
							 | 
						||
| 
								 | 
							
									if count := c.Count(); 2 != count {
							 | 
						||
| 
								 | 
							
										t.Errorf("c.Count(): 2 != %v\n", count)
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								func TestCounterSnapshot(t *testing.T) {
							 | 
						||
| 
								 | 
							
									c := NewCounter()
							 | 
						||
| 
								 | 
							
									c.Inc(1)
							 | 
						||
| 
								 | 
							
									snapshot := c.Snapshot()
							 | 
						||
| 
								 | 
							
									c.Inc(1)
							 | 
						||
| 
								 | 
							
									if count := snapshot.Count(); 1 != count {
							 | 
						||
| 
								 | 
							
										t.Errorf("c.Count(): 1 != %v\n", count)
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								func TestCounterZero(t *testing.T) {
							 | 
						||
| 
								 | 
							
									c := NewCounter()
							 | 
						||
| 
								 | 
							
									if count := c.Count(); 0 != count {
							 | 
						||
| 
								 | 
							
										t.Errorf("c.Count(): 0 != %v\n", count)
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								func TestGetOrRegisterCounter(t *testing.T) {
							 | 
						||
| 
								 | 
							
									r := NewRegistry()
							 | 
						||
| 
								 | 
							
									NewRegisteredCounter("foo", r).Inc(47)
							 | 
						||
| 
								 | 
							
									if c := GetOrRegisterCounter("foo", r); 47 != c.Count() {
							 | 
						||
| 
								 | 
							
										t.Fatal(c)
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								}
							 |