github.com/mackerelio/mackerel-agent-plugins@v0.89.3/mackerel-plugin-mssql/lib/mssql_test.go (about)

     1  //go:build windows
     2  
     3  package mpmssql
     4  
     5  import (
     6  	"os/exec"
     7  	"strings"
     8  	"testing"
     9  )
    10  
    11  func instance() (string, error) {
    12  	b, err := exec.Command("wmi2struct", "-l").CombinedOutput()
    13  	if err != nil {
    14  		return "", nil
    15  	}
    16  	for _, line := range strings.Split(string(b), "\n") {
    17  		if strings.Contains(line, "SQLEXPRESS") {
    18  			return "SQLEXPRESS", nil
    19  		}
    20  		if strings.Contains(line, "SQLServer") {
    21  			return "SQLSERVER", nil
    22  		}
    23  	}
    24  	return "", nil
    25  }
    26  
    27  func TestGraphDefinition(t *testing.T) {
    28  	var mssql MSSQLPlugin
    29  
    30  	name, err := instance()
    31  	if err != nil {
    32  		t.Fatal(err)
    33  	}
    34  	if name == "" {
    35  		t.Skip("SQLServer/SQLEXPRESS is not installed")
    36  	}
    37  	graphdef := mssql.GraphDefinition()
    38  	if len(graphdef) != 3 {
    39  		t.Errorf("GraphDefinition: %d definitions should be exists", len(graphdef))
    40  	}
    41  	values, err := mssql.FetchMetrics()
    42  	if err != nil {
    43  		t.Errorf("FetchMetrics: %v", err)
    44  	}
    45  	if len(values) != 10 {
    46  		t.Errorf("FetchMetrics: %d metrics must be exists", len(values))
    47  	}
    48  }