8
8
import static io .opentelemetry .sdk .extension .incubator .fileconfig .FileConfigTestUtil .createTempFileWithContent ;
9
9
import static org .assertj .core .api .Assertions .assertThat ;
10
10
import static org .assertj .core .api .Assertions .assertThatThrownBy ;
11
- import static org .mockito .Mockito .spy ;
12
- import static org .mockito .Mockito .verify ;
13
- import static org .mockito .Mockito .when ;
14
11
15
12
import com .google .common .collect .ImmutableMap ;
16
13
import com .linecorp .armeria .testing .junit5 .server .SelfSignedCertificateExtension ;
36
33
import java .time .Duration ;
37
34
import java .util .ArrayList ;
38
35
import java .util .Arrays ;
39
- import java .util .Collections ;
40
36
import java .util .List ;
41
- import java .util .stream .Collectors ;
42
37
import org .junit .jupiter .api .BeforeEach ;
43
38
import org .junit .jupiter .api .Test ;
44
- import org .junit .jupiter .api .extension .ExtendWith ;
45
39
import org .junit .jupiter .api .extension .RegisterExtension ;
46
40
import org .junit .jupiter .api .io .TempDir ;
47
- import org .mockito .ArgumentCaptor ;
48
- import org .mockito .Mockito ;
49
- import org .mockito .junit .jupiter .MockitoExtension ;
50
- import org .mockito .junit .jupiter .MockitoSettings ;
51
- import org .mockito .quality .Strictness ;
52
-
53
- @ ExtendWith (MockitoExtension .class )
54
- @ MockitoSettings (strictness = Strictness .LENIENT )
41
+
55
42
class LogRecordExporterFactoryTest {
56
43
57
44
@ RegisterExtension
@@ -62,33 +49,15 @@ class LogRecordExporterFactoryTest {
62
49
63
50
@ RegisterExtension CleanupExtension cleanup = new CleanupExtension ();
64
51
65
- private final SpiHelper spiHelper =
66
- spy (SpiHelper .create (SpanExporterFactoryTest .class .getClassLoader ()));
67
- private final DeclarativeConfigContext context = new DeclarativeConfigContext (spiHelper );
68
- private List <ComponentProvider > loadedComponentProviders = Collections .emptyList ();
52
+ private CapturingComponentLoader capturingComponentLoader ;
53
+ private SpiHelper spiHelper ;
54
+ private DeclarativeConfigContext context ;
69
55
70
56
@ BeforeEach
71
- @ SuppressWarnings ("unchecked" )
72
57
void setup () {
73
- when (spiHelper .load (ComponentProvider .class ))
74
- .thenAnswer (
75
- invocation -> {
76
- List <ComponentProvider > result =
77
- (List <ComponentProvider >) invocation .callRealMethod ();
78
- loadedComponentProviders =
79
- result .stream ().map (Mockito ::spy ).collect (Collectors .toList ());
80
- return loadedComponentProviders ;
81
- });
82
- }
83
-
84
- private ComponentProvider getComponentProvider (String name , Class <?> type ) {
85
- return loadedComponentProviders .stream ()
86
- .filter (
87
- componentProvider ->
88
- componentProvider .getName ().equals (name )
89
- && componentProvider .getType ().equals (type ))
90
- .findFirst ()
91
- .orElseThrow (IllegalStateException ::new );
58
+ capturingComponentLoader = new CapturingComponentLoader (LogRecordExporterFactoryTest .class );
59
+ spiHelper = SpiHelper .create (capturingComponentLoader );
60
+ context = new DeclarativeConfigContext (spiHelper );
92
61
}
93
62
94
63
@ Test
@@ -106,14 +75,10 @@ void create_OtlpHttpDefaults() {
106
75
107
76
assertThat (exporter .toString ()).isEqualTo (expectedExporter .toString ());
108
77
109
- assertThat (exporter .toString ()).isEqualTo (expectedExporter .toString ());
110
-
111
- ArgumentCaptor <DeclarativeConfigProperties > configCaptor =
112
- ArgumentCaptor .forClass (DeclarativeConfigProperties .class );
113
- ComponentProvider componentProvider =
114
- getComponentProvider ("otlp_http" , LogRecordExporter .class );
115
- verify (componentProvider ).create (configCaptor .capture ());
116
- DeclarativeConfigProperties configProperties = configCaptor .getValue ();
78
+ // Verify the configuration passed to the component provider
79
+ DeclarativeConfigProperties configProperties =
80
+ capturingComponentLoader .getCapturedConfig (ComponentProvider .class , "otlp_http" );
81
+ assertThat (configProperties ).isNotNull ();
117
82
assertThat (configProperties .getString ("protocol" )).isNull ();
118
83
assertThat (configProperties .getString ("endpoint" )).isNull ();
119
84
assertThat (configProperties .getStructured ("headers" )).isNull ();
@@ -174,12 +139,10 @@ void create_OtlpHttpConfigured(@TempDir Path tempDir)
174
139
175
140
assertThat (exporter .toString ()).isEqualTo (expectedExporter .toString ());
176
141
177
- ArgumentCaptor <DeclarativeConfigProperties > configCaptor =
178
- ArgumentCaptor .forClass (DeclarativeConfigProperties .class );
179
- ComponentProvider componentProvider =
180
- getComponentProvider ("otlp_http" , LogRecordExporter .class );
181
- verify (componentProvider ).create (configCaptor .capture ());
182
- DeclarativeConfigProperties configProperties = configCaptor .getValue ();
142
+ // Verify the configuration passed to the component provider
143
+ DeclarativeConfigProperties configProperties =
144
+ capturingComponentLoader .getCapturedConfig (ComponentProvider .class , "otlp_http" );
145
+ assertThat (configProperties ).isNotNull ();
183
146
assertThat (configProperties .getString ("endpoint" )).isEqualTo ("http://example:4318/v1/logs" );
184
147
List <DeclarativeConfigProperties > headers = configProperties .getStructuredList ("headers" );
185
148
assertThat (headers )
@@ -216,14 +179,10 @@ void create_OtlpGrpcDefaults() {
216
179
217
180
assertThat (exporter .toString ()).isEqualTo (expectedExporter .toString ());
218
181
219
- assertThat (exporter .toString ()).isEqualTo (expectedExporter .toString ());
220
-
221
- ArgumentCaptor <DeclarativeConfigProperties > configCaptor =
222
- ArgumentCaptor .forClass (DeclarativeConfigProperties .class );
223
- ComponentProvider componentProvider =
224
- getComponentProvider ("otlp_grpc" , LogRecordExporter .class );
225
- verify (componentProvider ).create (configCaptor .capture ());
226
- DeclarativeConfigProperties configProperties = configCaptor .getValue ();
182
+ // Verify the configuration passed to the component provider
183
+ DeclarativeConfigProperties configProperties =
184
+ capturingComponentLoader .getCapturedConfig (ComponentProvider .class , "otlp_grpc" );
185
+ assertThat (configProperties ).isNotNull ();
227
186
assertThat (configProperties .getString ("endpoint" )).isNull ();
228
187
assertThat (configProperties .getStructured ("headers" )).isNull ();
229
188
assertThat (configProperties .getString ("compression" )).isNull ();
@@ -283,12 +242,10 @@ void create_OtlpGrpcConfigured(@TempDir Path tempDir)
283
242
284
243
assertThat (exporter .toString ()).isEqualTo (expectedExporter .toString ());
285
244
286
- ArgumentCaptor <DeclarativeConfigProperties > configCaptor =
287
- ArgumentCaptor .forClass (DeclarativeConfigProperties .class );
288
- ComponentProvider componentProvider =
289
- getComponentProvider ("otlp_grpc" , LogRecordExporter .class );
290
- verify (componentProvider ).create (configCaptor .capture ());
291
- DeclarativeConfigProperties configProperties = configCaptor .getValue ();
245
+ // Verify the configuration passed to the component provider
246
+ DeclarativeConfigProperties configProperties =
247
+ capturingComponentLoader .getCapturedConfig (ComponentProvider .class , "otlp_grpc" );
248
+ assertThat (configProperties ).isNotNull ();
292
249
assertThat (configProperties .getString ("endpoint" )).isEqualTo ("http://example:4317" );
293
250
List <DeclarativeConfigProperties > headers = configProperties .getStructuredList ("headers" );
294
251
assertThat (headers )
@@ -327,11 +284,10 @@ void create_OtlpFile() {
327
284
328
285
assertThat (exporter .toString ()).isEqualTo (expectedExporter .toString ());
329
286
330
- ArgumentCaptor <DeclarativeConfigProperties > configCaptor =
331
- ArgumentCaptor .forClass (DeclarativeConfigProperties .class );
332
- ComponentProvider componentProvider =
333
- getComponentProvider ("otlp_file/development" , LogRecordExporter .class );
334
- verify (componentProvider ).create (configCaptor .capture ());
287
+ // Verify the configuration passed to the component provider
288
+ DeclarativeConfigProperties configProperties =
289
+ capturingComponentLoader .getCapturedConfig (ComponentProvider .class , "otlp_file/development" );
290
+ assertThat (configProperties ).isNotNull ();
335
291
}
336
292
337
293
@ Test
0 commit comments