mirror of https://github.com/grafana/grafana.git
				
				
				
			
		
			
				
	
	
		
			73 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Go
		
	
	
	
			
		
		
	
	
			73 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Go
		
	
	
	
| package metrics
 | |
| 
 | |
| import (
 | |
| 	"testing"
 | |
| 
 | |
| 	"github.com/stretchr/testify/require"
 | |
| )
 | |
| 
 | |
| func TestURLBuilder(t *testing.T) {
 | |
| 	t.Run("AzureMonitor URL Builder", func(t *testing.T) {
 | |
| 		t.Run("when metric definition is in the short form", func(t *testing.T) {
 | |
| 			ub := &urlBuilder{
 | |
| 				DefaultSubscription: "default-sub",
 | |
| 				ResourceGroup:       "rg",
 | |
| 				MetricDefinition:    "Microsoft.Compute/virtualMachines",
 | |
| 				ResourceName:        "rn",
 | |
| 			}
 | |
| 
 | |
| 			url := ub.Build()
 | |
| 			require.Equal(t, url, "default-sub/resourceGroups/rg/providers/Microsoft.Compute/virtualMachines/rn/providers/microsoft.insights/metrics")
 | |
| 		})
 | |
| 
 | |
| 		t.Run("when metric definition is in the short form and a subscription is defined", func(t *testing.T) {
 | |
| 			ub := &urlBuilder{
 | |
| 				DefaultSubscription: "default-sub",
 | |
| 				Subscription:        "specified-sub",
 | |
| 				ResourceGroup:       "rg",
 | |
| 				MetricDefinition:    "Microsoft.Compute/virtualMachines",
 | |
| 				ResourceName:        "rn",
 | |
| 			}
 | |
| 
 | |
| 			url := ub.Build()
 | |
| 			require.Equal(t, url, "specified-sub/resourceGroups/rg/providers/Microsoft.Compute/virtualMachines/rn/providers/microsoft.insights/metrics")
 | |
| 		})
 | |
| 
 | |
| 		t.Run("when metric definition is Microsoft.Storage/storageAccounts/blobServices", func(t *testing.T) {
 | |
| 			ub := &urlBuilder{
 | |
| 				DefaultSubscription: "default-sub",
 | |
| 				ResourceGroup:       "rg",
 | |
| 				MetricDefinition:    "Microsoft.Storage/storageAccounts/blobServices",
 | |
| 				ResourceName:        "rn1/default",
 | |
| 			}
 | |
| 
 | |
| 			url := ub.Build()
 | |
| 			require.Equal(t, url, "default-sub/resourceGroups/rg/providers/Microsoft.Storage/storageAccounts/rn1/blobServices/default/providers/microsoft.insights/metrics")
 | |
| 		})
 | |
| 
 | |
| 		t.Run("when metric definition is Microsoft.Storage/storageAccounts/fileServices", func(t *testing.T) {
 | |
| 			ub := &urlBuilder{
 | |
| 				DefaultSubscription: "default-sub",
 | |
| 				ResourceGroup:       "rg",
 | |
| 				MetricDefinition:    "Microsoft.Storage/storageAccounts/fileServices",
 | |
| 				ResourceName:        "rn1/default",
 | |
| 			}
 | |
| 
 | |
| 			url := ub.Build()
 | |
| 			require.Equal(t, url, "default-sub/resourceGroups/rg/providers/Microsoft.Storage/storageAccounts/rn1/fileServices/default/providers/microsoft.insights/metrics")
 | |
| 		})
 | |
| 
 | |
| 		t.Run("when metric definition is Microsoft.NetApp/netAppAccounts/capacityPools/volumes", func(t *testing.T) {
 | |
| 			ub := &urlBuilder{
 | |
| 				DefaultSubscription: "default-sub",
 | |
| 				ResourceGroup:       "rg",
 | |
| 				MetricDefinition:    "Microsoft.NetApp/netAppAccounts/capacityPools/volumes",
 | |
| 				ResourceName:        "rn1/rn2/rn3",
 | |
| 			}
 | |
| 
 | |
| 			url := ub.Build()
 | |
| 			require.Equal(t, url, "default-sub/resourceGroups/rg/providers/Microsoft.NetApp/netAppAccounts/rn1/capacityPools/rn2/volumes/rn3/providers/microsoft.insights/metrics")
 | |
| 		})
 | |
| 	})
 | |
| }
 |