github.com/netdata/go.d.plugin@v0.58.1/agent/netdataapi/api_test.go (about)

     1  // SPDX-License-Identifier: GPL-3.0-or-later
     2  
     3  package netdataapi
     4  
     5  import (
     6  	"bytes"
     7  	"testing"
     8  
     9  	"github.com/stretchr/testify/assert"
    10  )
    11  
    12  func TestAPI_CHART(t *testing.T) {
    13  	buf := &bytes.Buffer{}
    14  	a := API{Writer: buf}
    15  
    16  	_ = a.CHART(
    17  		"",
    18  		"id",
    19  		"name",
    20  		"title",
    21  		"units",
    22  		"family",
    23  		"context",
    24  		"line",
    25  		1,
    26  		1,
    27  		"",
    28  		"plugin",
    29  		"module",
    30  	)
    31  
    32  	assert.Equal(
    33  		t,
    34  		"CHART '.id' 'name' 'title' 'units' 'family' 'context' 'line' '1' '1' '' 'plugin' 'module'\n",
    35  		buf.String(),
    36  	)
    37  }
    38  
    39  func TestAPI_DIMENSION(t *testing.T) {
    40  	buf := &bytes.Buffer{}
    41  	a := API{Writer: buf}
    42  
    43  	_ = a.DIMENSION(
    44  		"id",
    45  		"name",
    46  		"absolute",
    47  		1,
    48  		1,
    49  		"",
    50  	)
    51  
    52  	assert.Equal(
    53  		t,
    54  		"DIMENSION 'id' 'name' 'absolute' '1' '1' ''\n",
    55  		buf.String(),
    56  	)
    57  }
    58  
    59  func TestAPI_BEGIN(t *testing.T) {
    60  	buf := &bytes.Buffer{}
    61  	a := API{Writer: buf}
    62  
    63  	_ = a.BEGIN(
    64  		"typeID",
    65  		"id",
    66  		0,
    67  	)
    68  
    69  	assert.Equal(
    70  		t,
    71  		"BEGIN 'typeID.id'\n",
    72  		buf.String(),
    73  	)
    74  
    75  	buf.Reset()
    76  
    77  	_ = a.BEGIN(
    78  		"typeID",
    79  		"id",
    80  		1,
    81  	)
    82  
    83  	assert.Equal(
    84  		t,
    85  		"BEGIN 'typeID.id' 1\n",
    86  		buf.String(),
    87  	)
    88  }
    89  
    90  func TestAPI_SET(t *testing.T) {
    91  	buf := &bytes.Buffer{}
    92  	a := API{Writer: buf}
    93  
    94  	_ = a.SET("id", 100)
    95  
    96  	assert.Equal(
    97  		t,
    98  		"SET 'id' = 100\n",
    99  		buf.String(),
   100  	)
   101  }
   102  
   103  func TestAPI_SETEMPTY(t *testing.T) {
   104  	buf := &bytes.Buffer{}
   105  	a := API{Writer: buf}
   106  
   107  	_ = a.SETEMPTY("id")
   108  
   109  	assert.Equal(
   110  		t,
   111  		"SET 'id' = \n",
   112  		buf.String(),
   113  	)
   114  }
   115  
   116  func TestAPI_VARIABLE(t *testing.T) {
   117  	buf := &bytes.Buffer{}
   118  	a := API{Writer: buf}
   119  
   120  	_ = a.VARIABLE("id", 100)
   121  
   122  	assert.Equal(
   123  		t,
   124  		"VARIABLE CHART 'id' = 100\n",
   125  		buf.String(),
   126  	)
   127  }
   128  
   129  func TestAPI_END(t *testing.T) {
   130  	buf := &bytes.Buffer{}
   131  	a := API{Writer: buf}
   132  
   133  	_ = a.END()
   134  
   135  	assert.Equal(
   136  		t,
   137  		"END\n\n",
   138  		buf.String(),
   139  	)
   140  }
   141  
   142  func TestAPI_CLABEL(t *testing.T) {
   143  	buf := &bytes.Buffer{}
   144  	a := API{Writer: buf}
   145  
   146  	_ = a.CLABEL("key", "value", 1)
   147  
   148  	assert.Equal(
   149  		t,
   150  		"CLABEL 'key' 'value' '1'\n",
   151  		buf.String(),
   152  	)
   153  }
   154  
   155  func TestAPI_CLABELCOMMIT(t *testing.T) {
   156  	buf := &bytes.Buffer{}
   157  	a := API{Writer: buf}
   158  
   159  	_ = a.CLABELCOMMIT()
   160  
   161  	assert.Equal(
   162  		t,
   163  		"CLABEL_COMMIT\n",
   164  		buf.String(),
   165  	)
   166  }
   167  
   168  func TestAPI_DISABLE(t *testing.T) {
   169  	buf := &bytes.Buffer{}
   170  	a := API{Writer: buf}
   171  
   172  	_ = a.DISABLE()
   173  
   174  	assert.Equal(
   175  		t,
   176  		"DISABLE\n",
   177  		buf.String(),
   178  	)
   179  }
   180  
   181  func TestAPI_EMPTYLINE(t *testing.T) {
   182  	buf := &bytes.Buffer{}
   183  	a := API{Writer: buf}
   184  
   185  	_ = a.EMPTYLINE()
   186  
   187  	assert.Equal(
   188  		t,
   189  		"\n",
   190  		buf.String(),
   191  	)
   192  }
   193  
   194  func TestAPI_HOST(t *testing.T) {
   195  	buf := &bytes.Buffer{}
   196  	a := API{Writer: buf}
   197  
   198  	_ = a.HOST("guid")
   199  
   200  	assert.Equal(
   201  		t,
   202  		"HOST 'guid'\n\n",
   203  		buf.String(),
   204  	)
   205  }
   206  
   207  func TestAPI_HOSTDEFINE(t *testing.T) {
   208  	buf := &bytes.Buffer{}
   209  	a := API{Writer: buf}
   210  
   211  	_ = a.HOSTDEFINE("guid", "hostname")
   212  
   213  	assert.Equal(
   214  		t,
   215  		"HOST_DEFINE 'guid' 'hostname'\n",
   216  		buf.String(),
   217  	)
   218  }
   219  
   220  func TestAPI_HOSTLABEL(t *testing.T) {
   221  	buf := &bytes.Buffer{}
   222  	a := API{Writer: buf}
   223  
   224  	_ = a.HOSTLABEL("name", "value")
   225  
   226  	assert.Equal(
   227  		t,
   228  		"HOST_LABEL 'name' 'value'\n",
   229  		buf.String(),
   230  	)
   231  }
   232  
   233  func TestAPI_HOSTDEFINEEND(t *testing.T) {
   234  	buf := &bytes.Buffer{}
   235  	a := API{Writer: buf}
   236  
   237  	_ = a.HOSTDEFINEEND()
   238  
   239  	assert.Equal(
   240  		t,
   241  		"HOST_DEFINE_END\n\n",
   242  		buf.String(),
   243  	)
   244  }
   245  
   246  func TestAPI_HOSTINFO(t *testing.T) {
   247  	buf := &bytes.Buffer{}
   248  	a := API{Writer: buf}
   249  
   250  	_ = a.HOSTINFO("guid", "hostname", map[string]string{"label1": "value1"})
   251  
   252  	assert.Equal(
   253  		t,
   254  		`HOST_DEFINE 'guid' 'hostname'
   255  HOST_LABEL 'label1' 'value1'
   256  HOST_DEFINE_END
   257  
   258  `,
   259  		buf.String(),
   260  	)
   261  }
   262  
   263  func TestAPI_DynCfgEnable(t *testing.T) {
   264  	buf := &bytes.Buffer{}
   265  	a := API{Writer: buf}
   266  
   267  	_ = a.DynCfgEnable("plugin")
   268  
   269  	assert.Equal(
   270  		t,
   271  		"DYNCFG_ENABLE 'plugin'\n\n",
   272  		buf.String(),
   273  	)
   274  }
   275  
   276  func TestAPI_DynCfgReset(t *testing.T) {
   277  	buf := &bytes.Buffer{}
   278  	a := API{Writer: buf}
   279  
   280  	_ = a.DynCfgReset()
   281  
   282  	assert.Equal(
   283  		t,
   284  		"DYNCFG_RESET\n",
   285  		buf.String(),
   286  	)
   287  }
   288  
   289  func TestAPI_DyncCfgRegisterModule(t *testing.T) {
   290  	buf := &bytes.Buffer{}
   291  	a := API{Writer: buf}
   292  
   293  	_ = a.DyncCfgRegisterModule("module")
   294  
   295  	assert.Equal(
   296  		t,
   297  		"DYNCFG_REGISTER_MODULE 'module' job_array\n\n",
   298  		buf.String(),
   299  	)
   300  }
   301  
   302  func TestAPI_DynCfgRegisterJob(t *testing.T) {
   303  	buf := &bytes.Buffer{}
   304  	a := API{Writer: buf}
   305  
   306  	_ = a.DynCfgRegisterJob("module", "job", "type")
   307  
   308  	assert.Equal(
   309  		t,
   310  		"DYNCFG_REGISTER_JOB 'module' 'job' 'type' 0\n\n",
   311  		buf.String(),
   312  	)
   313  }
   314  
   315  func TestAPI_DynCfgReportJobStatus(t *testing.T) {
   316  	buf := &bytes.Buffer{}
   317  	a := API{Writer: buf}
   318  
   319  	_ = a.DynCfgReportJobStatus("module", "job", "status", "reason")
   320  
   321  	assert.Equal(
   322  		t,
   323  		"REPORT_JOB_STATUS 'module' 'job' 'status' 0 'reason'\n\n",
   324  		buf.String(),
   325  	)
   326  }
   327  
   328  func TestAPI_FunctionResultSuccess(t *testing.T) {
   329  	buf := &bytes.Buffer{}
   330  	a := API{Writer: buf}
   331  
   332  	_ = a.FunctionResultSuccess("uid", "contentType", "payload")
   333  
   334  	assert.Equal(
   335  		t,
   336  		`FUNCTION_RESULT_BEGIN uid 1 contentType 0
   337  payload
   338  FUNCTION_RESULT_END
   339  
   340  `,
   341  		buf.String(),
   342  	)
   343  }
   344  
   345  func TestAPI_FunctionResultReject(t *testing.T) {
   346  	buf := &bytes.Buffer{}
   347  	a := API{Writer: buf}
   348  
   349  	_ = a.FunctionResultReject("uid", "contentType", "payload")
   350  
   351  	assert.Equal(
   352  		t,
   353  		`FUNCTION_RESULT_BEGIN uid 0 contentType 0
   354  payload
   355  FUNCTION_RESULT_END
   356  
   357  `,
   358  		buf.String(),
   359  	)
   360  }