InstrumentationModuleTest.groovy 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. /*
  2. * Copyright The OpenTelemetry Authors
  3. * SPDX-License-Identifier: Apache-2.0
  4. */
  5. package io.opentelemetry.javaagent.extension.instrumentation
  6. import io.opentelemetry.instrumentation.api.config.Config
  7. import io.opentelemetry.instrumentation.api.config.ConfigBuilder
  8. import spock.lang.Specification
  9. class InstrumentationModuleTest extends Specification {
  10. def "default enabled"() {
  11. setup:
  12. def target = new TestInstrumentationModule(["test"])
  13. expect:
  14. target.enabled
  15. }
  16. def "default enabled override"() {
  17. expect:
  18. target.enabled == enabled
  19. where:
  20. enabled | target
  21. true | new TestInstrumentationModule(["test"]) {
  22. @Override
  23. protected boolean defaultEnabled() {
  24. return true
  25. }
  26. }
  27. false | new TestInstrumentationModule(["test"]) {
  28. @Override
  29. protected boolean defaultEnabled() {
  30. return false
  31. }
  32. }
  33. }
  34. def "default disabled can override to enabled #enabled"() {
  35. setup:
  36. Config.instance = new ConfigBuilder().readProperties([
  37. "otel.instrumentation.test.enabled": Boolean.toString(enabled)
  38. ]).build()
  39. def target = new TestInstrumentationModule(["test"]) {
  40. @Override
  41. protected boolean defaultEnabled() {
  42. return false
  43. }
  44. }
  45. expect:
  46. target.enabled == enabled
  47. cleanup:
  48. Config.instance = null
  49. where:
  50. enabled << [true, false]
  51. }
  52. static class TestInstrumentationModule extends InstrumentationModule {
  53. TestInstrumentationModule(List<String> instrumentationNames) {
  54. super(instrumentationNames)
  55. }
  56. @Override
  57. List<TypeInstrumentation> typeInstrumentations() {
  58. return []
  59. }
  60. }
  61. }