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 }