|
7 | 7 | require 'test_helper' |
8 | 8 |
|
9 | 9 | describe OpenTelemetry::Metrics::Meter do |
10 | | - INSTRUMENT_NAME_ERROR = OpenTelemetry::Metrics::Meter::InstrumentNameError |
11 | | - INSTRUMENT_UNIT_ERROR = OpenTelemetry::Metrics::Meter::InstrumentUnitError |
12 | | - INSTRUMENT_DESCRIPTION_ERROR = OpenTelemetry::Metrics::Meter::InstrumentDescriptionError |
13 | | - DUPLICATE_INSTRUMENT_ERROR = OpenTelemetry::Metrics::Meter::DuplicateInstrumentError |
14 | | - |
15 | 10 | let(:meter_provider) { OpenTelemetry::Metrics::MeterProvider.new } |
16 | 11 | let(:meter) { meter_provider.meter('test-meter') } |
17 | 12 |
|
|
24 | 19 | end |
25 | 20 | end |
26 | 21 |
|
27 | | - it 'instrument name must not be nil' do |
28 | | - _(-> { meter.create_counter(nil) }).must_raise(INSTRUMENT_NAME_ERROR) |
29 | | - end |
30 | | - |
31 | | - it 'instument name must not be an empty string' do |
32 | | - _(-> { meter.create_counter('') }).must_raise(INSTRUMENT_NAME_ERROR) |
33 | | - end |
34 | | - |
35 | | - it 'instrument name must have an alphabetic first character' do |
36 | | - _(meter.create_counter('one_counter')) |
37 | | - _(-> { meter.create_counter('1_counter') }).must_raise(INSTRUMENT_NAME_ERROR) |
38 | | - end |
39 | | - |
40 | | - it 'instrument name must not exceed 63 character limit' do |
41 | | - long_name = 'a' * 63 |
42 | | - meter.create_counter(long_name) |
43 | | - _(-> { meter.create_counter(long_name + 'a') }).must_raise(INSTRUMENT_NAME_ERROR) |
| 22 | + it 'test create_counter' do |
| 23 | + counter = meter.create_counter('test') |
| 24 | + _(counter.class).must_equal(OpenTelemetry::Metrics::Instrument::Counter) |
44 | 25 | end |
45 | 26 |
|
46 | | - it 'instrument name must belong to alphanumeric characters, _, ., and -' do |
47 | | - meter.create_counter('a_-..-_a') |
48 | | - _(-> { meter.create_counter('a@') }).must_raise(INSTRUMENT_NAME_ERROR) |
49 | | - _(-> { meter.create_counter('a!') }).must_raise(INSTRUMENT_NAME_ERROR) |
| 27 | + it 'test create_histogram' do |
| 28 | + counter = meter.create_histogram('test') |
| 29 | + _(counter.class).must_equal(OpenTelemetry::Metrics::Instrument::Histogram) |
50 | 30 | end |
51 | 31 |
|
52 | | - it 'instrument unit must be ASCII' do |
53 | | - _(-> { meter.create_counter('a_counter', unit: 'á') }).must_raise(INSTRUMENT_UNIT_ERROR) |
| 32 | + it 'test create_up_down_counter' do |
| 33 | + counter = meter.create_up_down_counter('test') |
| 34 | + _(counter.class).must_equal(OpenTelemetry::Metrics::Instrument::UpDownCounter) |
54 | 35 | end |
55 | 36 |
|
56 | | - it 'instrument unit must not exceed 63 characters' do |
57 | | - long_unit = 'a' * 63 |
58 | | - meter.create_counter('a_counter', unit: long_unit) |
59 | | - _(-> { meter.create_counter('b_counter', unit: long_unit + 'a') }).must_raise(INSTRUMENT_UNIT_ERROR) |
| 37 | + it 'test create_observable_counter' do |
| 38 | + counter = meter.create_observable_counter('test', callback: -> {}) |
| 39 | + _(counter.class).must_equal(OpenTelemetry::Metrics::Instrument::ObservableCounter) |
60 | 40 | end |
61 | 41 |
|
62 | | - it 'instrument description must be utf8mb3' do |
63 | | - _(-> { meter.create_counter('a_counter', description: '💩'.dup) }).must_raise(INSTRUMENT_DESCRIPTION_ERROR) |
64 | | - _(-> { meter.create_counter('b_counter', description: "\xc2".dup) }).must_raise(INSTRUMENT_DESCRIPTION_ERROR) |
| 42 | + it 'test create_observable_gauge' do |
| 43 | + counter = meter.create_observable_gauge('test', callback: -> {}) |
| 44 | + _(counter.class).must_equal(OpenTelemetry::Metrics::Instrument::ObservableGauge) |
65 | 45 | end |
66 | 46 |
|
67 | | - it 'instrument description must not exceed 1023 characters' do |
68 | | - long_description = 'a' * 1023 |
69 | | - meter.create_counter('a_counter', description: long_description) |
70 | | - _(-> { meter.create_counter('b_counter', description: long_description + 'a') }).must_raise(INSTRUMENT_DESCRIPTION_ERROR) |
| 47 | + it 'test create_observable_up_down_counter' do |
| 48 | + counter = meter.create_observable_up_down_counter('test', callback: -> {}) |
| 49 | + _(counter.class).must_equal(OpenTelemetry::Metrics::Instrument::ObservableUpDownCounter) |
71 | 50 | end |
72 | 51 | end |
73 | 52 | end |
0 commit comments