|
11 | 11 | import static io.opentelemetry.api.common.AttributeKey.stringKey; |
12 | 12 | import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.assertThat; |
13 | 13 | import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.equalTo; |
| 14 | +import static org.mockito.ArgumentMatchers.eq; |
| 15 | +import static org.mockito.Mockito.mock; |
| 16 | +import static org.mockito.Mockito.verify; |
14 | 17 | import static org.mockito.Mockito.when; |
15 | 18 |
|
16 | 19 | import io.opentelemetry.api.common.AttributeKey; |
@@ -124,75 +127,23 @@ void emit_NoFields() { |
124 | 127 | } |
125 | 128 |
|
126 | 129 | @Test |
127 | | - void emit_WithMinimumSeverityConfiguration() { |
128 | | - LoggerConfig config = |
129 | | - LoggerConfig.builder().setMinimumSeverity(Severity.INFO.getSeverityNumber()).build(); |
130 | | - SdkLogger logger = new SdkLogger(loggerSharedState, SCOPE_INFO, config); |
| 130 | + void emit_ChecksLoggerIsEnabled() { |
| 131 | + SdkLogger logger = mock(SdkLogger.class); |
131 | 132 | builder = new SdkLogRecordBuilder(loggerSharedState, SCOPE_INFO, logger); |
132 | 133 |
|
133 | | - builder.setBody("too-low").setSeverity(Severity.DEBUG).emit(); |
134 | | - assertThat(emittedLog.get()).isNull(); |
135 | | - |
136 | | - builder.setBody("allowed").setSeverity(Severity.INFO).emit(); |
137 | | - assertThat(emittedLog.get().toLogRecordData()).hasBody("allowed"); |
138 | | - } |
139 | | - |
140 | | - @Test |
141 | | - void emit_DropsUnsampledTraceWhenTraceBased() { |
142 | | - LoggerConfig config = LoggerConfig.builder().setTraceBased(true).build(); |
143 | | - SdkLogger logger = new SdkLogger(loggerSharedState, SCOPE_INFO, config); |
144 | | - builder = new SdkLogRecordBuilder(loggerSharedState, SCOPE_INFO, logger); |
145 | | - |
146 | | - SpanContext unsampledSpanContext = |
147 | | - SpanContext.create( |
148 | | - "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", |
149 | | - "bbbbbbbbbbbbbbbb", |
150 | | - TraceFlags.getDefault(), |
151 | | - TraceState.getDefault()); |
152 | | - builder |
153 | | - .setBody("unsampled") |
154 | | - .setContext(Span.wrap(unsampledSpanContext).storeInContext(Context.root())) |
155 | | - .emit(); |
156 | | - assertThat(emittedLog.get()).isNull(); |
157 | | - |
158 | | - SpanContext sampledSpanContext = |
159 | | - SpanContext.create( |
160 | | - "cccccccccccccccccccccccccccccccc", |
161 | | - "dddddddddddddddd", |
162 | | - TraceFlags.getSampled(), |
163 | | - TraceState.getDefault()); |
164 | | - builder |
165 | | - .setBody("sampled") |
166 | | - .setContext(Span.wrap(sampledSpanContext).storeInContext(Context.root())) |
167 | | - .emit(); |
168 | | - assertThat(emittedLog.get().toLogRecordData()) |
169 | | - .hasSpanContext(sampledSpanContext) |
170 | | - .hasBody("sampled"); |
171 | | - } |
| 134 | + Severity severity = Severity.WARN; |
| 135 | + Context context = Context.current(); |
172 | 136 |
|
173 | | - @Test |
174 | | - void emit_AllowsUndefinedSeverityWithMinimumSeverity() { |
175 | | - LoggerConfig config = |
176 | | - LoggerConfig.builder().setMinimumSeverity(Severity.WARN.getSeverityNumber()).build(); |
177 | | - SdkLogger logger = new SdkLogger(loggerSharedState, SCOPE_INFO, config); |
178 | | - builder = new SdkLogRecordBuilder(loggerSharedState, SCOPE_INFO, logger); |
| 137 | + // Configure mock to return false (disabled) |
| 138 | + when(logger.isEnabled(severity, context)).thenReturn(false); |
179 | 139 |
|
180 | | - // Undefined severity should bypass the minimum severity filter |
181 | | - builder.setBody("undefined-severity").setSeverity(Severity.UNDEFINED_SEVERITY_NUMBER).emit(); |
182 | | - assertThat(emittedLog.get().toLogRecordData()) |
183 | | - .hasBody("undefined-severity") |
184 | | - .hasSeverity(Severity.UNDEFINED_SEVERITY_NUMBER); |
185 | | - } |
| 140 | + builder.setSeverity(severity).setContext(context).emit(); |
186 | 141 |
|
187 | | - @Test |
188 | | - void emit_AllowsNoTraceContextWithTraceBased() { |
189 | | - LoggerConfig config = LoggerConfig.builder().setTraceBased(true).build(); |
190 | | - SdkLogger logger = new SdkLogger(loggerSharedState, SCOPE_INFO, config); |
191 | | - builder = new SdkLogRecordBuilder(loggerSharedState, SCOPE_INFO, logger); |
| 142 | + // Verify isEnabled was called with correct parameters |
| 143 | + verify(logger).isEnabled(eq(severity), eq(context)); |
192 | 144 |
|
193 | | - // No trace context should bypass the trace-based filter |
194 | | - builder.setBody("no-trace-context").emit(); |
195 | | - assertThat(emittedLog.get().toLogRecordData()).hasBody("no-trace-context"); |
| 145 | + // Verify log was not processed (because isEnabled returned false) |
| 146 | + assertThat(emittedLog.get()).isNull(); |
196 | 147 | } |
197 | 148 |
|
198 | 149 | @Test |
|
0 commit comments