'ifHighSpeed', 'field_value' => '1000'], ['field_name' => 'ifSpeed', 'field_value' => '100000000'], ], ]; $interface = ['host_id' => 1, 'snmp_query_id' => 2, 'snmp_index' => 'eth0']; expect(rrdtool_function_interface_speed_under_test($interface))->toBe('1000000000') ->and(rrdtool_function_interface_speed_under_test($interface))->toBe('1000000000') ->and($GLOBALS['interface_speed_queries'])->toHaveCount(1) ->and($GLOBALS['interface_speed_queries'][0][0])->toContain('field_name IN (?, ?)') ->and($GLOBALS['interface_speed_queries'][0][1])->toBe([1, 2, 'eth0', 'ifHighSpeed', 'ifSpeed']); }); test('interface speed falls back through ifSpeed and the configured default', function () { $GLOBALS['interface_speed_rows'] = [ [['field_name' => 'ifSpeed', 'field_value' => '123456']], [], [], ]; $GLOBALS['default_interface_speed'] = 456; expect(rrdtool_function_interface_speed_under_test(['host_id' => 1, 'snmp_query_id' => 2, 'snmp_index' => 'eth1']))->toBe('123456') ->and(rrdtool_function_interface_speed_under_test(['host_id' => 1, 'snmp_query_id' => 2, 'snmp_index' => 'eth2']))->toBe('456000000'); $GLOBALS['default_interface_speed'] = 0; expect(rrdtool_function_interface_speed_under_test(['host_id' => 1, 'snmp_query_id' => 2, 'snmp_index' => 'eth3']))->toBe('10000000000000'); });