105 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Go
		
	
	
	
			
		
		
	
	
			105 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Go
		
	
	
	
| package jolokia2
 | |
| 
 | |
| import (
 | |
| 	"testing"
 | |
| 
 | |
| 	"github.com/stretchr/testify/assert"
 | |
| )
 | |
| 
 | |
| func TestJolokia2_makeReadRequests(t *testing.T) {
 | |
| 	cases := []struct {
 | |
| 		metric   Metric
 | |
| 		expected []ReadRequest
 | |
| 	}{
 | |
| 		{
 | |
| 			metric: Metric{
 | |
| 				Name:  "object",
 | |
| 				Mbean: "test:foo=bar",
 | |
| 			},
 | |
| 			expected: []ReadRequest{
 | |
| 				{
 | |
| 					Mbean:      "test:foo=bar",
 | |
| 					Attributes: []string{},
 | |
| 				},
 | |
| 			},
 | |
| 		}, {
 | |
| 			metric: Metric{
 | |
| 				Name:  "object_with_an_attribute",
 | |
| 				Mbean: "test:foo=bar",
 | |
| 				Paths: []string{"biz"},
 | |
| 			},
 | |
| 			expected: []ReadRequest{
 | |
| 				{
 | |
| 					Mbean:      "test:foo=bar",
 | |
| 					Attributes: []string{"biz"},
 | |
| 				},
 | |
| 			},
 | |
| 		}, {
 | |
| 			metric: Metric{
 | |
| 				Name:  "object_with_attributes",
 | |
| 				Mbean: "test:foo=bar",
 | |
| 				Paths: []string{"baz", "biz"},
 | |
| 			},
 | |
| 			expected: []ReadRequest{
 | |
| 				{
 | |
| 					Mbean:      "test:foo=bar",
 | |
| 					Attributes: []string{"baz", "biz"},
 | |
| 				},
 | |
| 			},
 | |
| 		}, {
 | |
| 			metric: Metric{
 | |
| 				Name:  "object_with_an_attribute_and_path",
 | |
| 				Mbean: "test:foo=bar",
 | |
| 				Paths: []string{"biz/baz"},
 | |
| 			},
 | |
| 			expected: []ReadRequest{
 | |
| 				{
 | |
| 					Mbean:      "test:foo=bar",
 | |
| 					Attributes: []string{"biz"},
 | |
| 					Path:       "baz",
 | |
| 				},
 | |
| 			},
 | |
| 		}, {
 | |
| 			metric: Metric{
 | |
| 				Name:  "object_with_an_attribute_and_a_deep_path",
 | |
| 				Mbean: "test:foo=bar",
 | |
| 				Paths: []string{"biz/baz/fiz/faz"},
 | |
| 			},
 | |
| 			expected: []ReadRequest{
 | |
| 				{
 | |
| 					Mbean:      "test:foo=bar",
 | |
| 					Attributes: []string{"biz"},
 | |
| 					Path:       "baz/fiz/faz",
 | |
| 				},
 | |
| 			},
 | |
| 		}, {
 | |
| 			metric: Metric{
 | |
| 				Name:  "object_with_attributes_and_paths",
 | |
| 				Mbean: "test:foo=bar",
 | |
| 				Paths: []string{"baz/biz", "faz/fiz"},
 | |
| 			},
 | |
| 			expected: []ReadRequest{
 | |
| 				{
 | |
| 					Mbean:      "test:foo=bar",
 | |
| 					Attributes: []string{"baz"},
 | |
| 					Path:       "biz",
 | |
| 				},
 | |
| 				{
 | |
| 					Mbean:      "test:foo=bar",
 | |
| 					Attributes: []string{"faz"},
 | |
| 					Path:       "fiz",
 | |
| 				},
 | |
| 			},
 | |
| 		},
 | |
| 	}
 | |
| 
 | |
| 	for _, c := range cases {
 | |
| 		payload := makeReadRequests([]Metric{c.metric})
 | |
| 
 | |
| 		assert.Equal(t, len(c.expected), len(payload), "Failing case: "+c.metric.Name)
 | |
| 		for _, actual := range payload {
 | |
| 			assert.Contains(t, c.expected, actual, "Failing case: "+c.metric.Name)
 | |
| 		}
 | |
| 	}
 | |
| }
 |