streampollablechannelmessagereceiver:尝试从名为[ldap\u group\u topic]的通道读取消息时发生异常

tez616oj  于 2021-07-23  发布在  Java
关注(0)|答案(0)|浏览(300)

当我使用embeddedkafka和SpringContract测试执行SpringContract测试时,会出现此错误。当我使用来自“ldap\u group\u topic”的消息时,问题似乎出现了。错误是:

  1. org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'ldap_group_topic' available
  2. at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.java:812) ~[spring-beans-5.2.7.RELEASE.jar:5.2.7.RELEASE]
  3. at org.springframework.beans.factory.support.AbstractBeanFactory.getMergedLocalBeanDefinition(AbstractBeanFactory.java:1282) ~[spring-beans-5.2.7.RELEASE.jar:5.2.7.RELEASE]
  4. at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:297) ~[spring-beans-5.2.7.RELEASE.jar:5.2.7.RELEASE]
  5. at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:276) ~[spring-beans-5.2.7.RELEASE.jar:5.2.7.RELEASE]
  6. at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:207) ~[spring-beans-5.2.7.RELEASE.jar:5.2.7.RELEASE]
  7. at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1115) ~[spring-context-5.2.7.RELEASE.jar:5.2.7.RELEASE]
  8. at org.springframework.cloud.contract.verifier.messaging.stream.StreamPollableChannelMessageReceiver.receive(StreamPollableChannelMessageReceiver.java:47) [spring-cloud-contract-verifier-2.2.3.RELEASE.jar:2.2.3.RELEASE]
  9. at org.springframework.cloud.contract.verifier.messaging.stream.StreamPollableChannelMessageReceiver.receive(StreamPollableChannelMessageReceiver.java:61) [spring-cloud-contract-verifier-2.2.3.RELEASE.jar:2.2.3.RELEASE]
  10. at org.springframework.cloud.contract.verifier.messaging.stream.StreamPollableChannelMessageReceiver.receive(StreamPollableChannelMessageReceiver.java:29) [spring-cloud-contract-verifier-2.2.3.RELEASE.jar:2.2.3.RELEASE]
  11. at org.springframework.cloud.contract.verifier.messaging.stream.StreamStubMessages.receive(StreamStubMessages.java:59) [spring-cloud-contract-verifier-2.2.3.RELEASE.jar:2.2.3.RELEASE]
  12. at org.springframework.cloud.contract.verifier.messaging.stream.StreamStubMessages.receive(StreamStubMessages.java:30) [spring-cloud-contract-verifier-2.2.3.RELEASE.jar:2.2.3.RELEASE]
  13. at org.springframework.cloud.contract.verifier.messaging.internal.ContractVerifierMessaging.receive(ContractVerifierMessaging.java:44) [spring-cloud-contract-verifier-2.2.3.RELEASE.jar:2.2.3.RELEASE]
  14. at org.arkcase.ldap.authority.org.arkcase.ldap.authority.SyncTest.validate_ldapGroupTopicFields(SyncTest.java:30) [test-classes/:na]
  15. at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_191]
  16. at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_191]
  17. at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_191]
  18. at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_191]
  19. at org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:686) [junit-platform-commons-1.6.2.jar:1.6.2]
  20. at org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60) [junit-jupiter-engine-5.6.2.jar:5.6.2]
  21. atorg.junit.jupiter.engine.execution.ExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(ExecutableInvoker.java:115) ~[junit-jupiter-engine-5.6.2]
  22. at org.junit.jupiter.engine.execution.ExecutableInvoker.lambda$invoke$0(ExecutableInvoker.java:105) ~[junit-jupiter-engine-5.6.2.jar:5.6.2]
  23. at org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106) ~[junit-jupiter-engine-5.6.2.jar:5.6.2]
  24. at org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64) ~[junit-jupiter-engine-5.6.2.jar:5.6.2]
  25. at org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45) ~[junit-jupiter-engine-5.6.2.jar:5.6.2]
  26. at org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37) ~[junit-jupiter-engine-5.6.2.jar:5.6.2]
  27. at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:104) ~[junit-jupiter-engine-5.6.2.jar:5.6.2]
  28. at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:98) ~[junit-jupiter-engine-5.6.2.jar:5.6.2]
  29. at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$6(TestMethodTestDescriptor.java:212) ~[junit-jupiter-engine-5.6.2.jar:5.6.2]
  30. at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.6.2.jar:1.6.2]
  31. at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:208) ~[junit-jupiter-engine-5.6.2.jar:5.6.2]
  32. at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:137) ~[junit-jupiter-engine-5.6.2.jar:5.6.2]
  33. at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:71) ~[junit-jupiter-engine-5.6.2.jar:5.6.2]
  34. at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:135) ~[junit-platform-engine-1.6.2.jar:1.6.2]
  35. at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.6.2.jar:1.6.2]
  36. at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:125) ~[junit-platform-engine-1.6.2.jar:1.6.2]
  37. at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:135) ~[junit-platform-engine-1.6.2.jar:1.6.2]
  38. at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:123) ~[junit-platform-engine-1.6.2.jar:1.6.2]
  39. at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.6.2.jar:1.6.2]
  40. at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:122) ~[junit-platform-engine-1.6.2.jar:1.6.2]
  41. at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:80) ~[junit-platform-engine-1.6.2.jar:1.6.2]
  42. at java.util.ArrayList.forEach(ArrayList.java:1257) ~[na:1.8.0_191]
  43. at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:38) ~[junit-platform-engine-1.6.2.jar:1.6.2]
  44. at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:139) ~[junit-platform-engine-1.6.2.jar:1.6.2]
  45. at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.6.2.jar:1.6.2]
  46. at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:125) ~[junit-platform-engine-1.6.2.jar:1.6.2]
  47. at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:135) ~[junit-platform-engine-1.6.2.jar:1.6.2]
  48. at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:123) ~[junit-platform-engine-1.6.2.jar:1.6.2]
  49. at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.6.2.jar:1.6.2]
  50. at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:122) ~[junit-platform-engine-1.6.2.jar:1.6.2]
  51. at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:80) ~[junit-platform-engine-1.6.2.jar:1.6.2]
  52. at java.util.ArrayList.forEach(ArrayList.java:1257) ~[na:1.8.0_191]
  53. at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:38) ~[junit-platform-engine-1.6.2.jar:1.6.2]
  54. at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:139) ~[junit-platform-engine-1.6.2.jar:1.6.2]
  55. at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.6.2.jar:1.6.2]
  56. at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:125) ~[junit-platform-engine-1.6.2.jar:1.6.2]
  57. at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:135) ~[junit-platform-engine-1.6.2.jar:1.6.2]
  58. at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:123) ~[junit-platform-engine-1.6.2.jar:1.6.2]
  59. at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.6.2.jar:1.6.2]
  60. at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:122) ~[junit-platform-engine-1.6.2.jar:1.6.2]
  61. at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:80) ~[junit-platform-engine-1.6.2.jar:1.6.2]
  62. at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:32) ~[junit-platform-engine-1.6.2.jar:1.6.2]
  63. at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57) ~[junit-platform-engine-1.6.2.jar:1.6.2]
  64. at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:51) ~[junit-platform-engine-1.6.2.jar:1.6.2]
  65. at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:248) ~[junit-platform-launcher-1.6.2.jar:1.6.2]
  66. at org.junit.platform.launcher.core.DefaultLauncher.lambda$execute$5(DefaultLauncher.java:211) ~[junit-platform-launcher-1.6.2.jar:1.6.2]
  67. at org.junit.platform.launcher.core.DefaultLauncher.withInterceptedStreams(DefaultLauncher.java:226) ~[junit-platform-launcher-1.6.2.jar:1.6.2]
  68. at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:199) ~[junit-platform-launcher-1.6.2.jar:1.6.2]
  69. at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:132) ~[junit-platform-launcher-1.6.2.jar:1.6.2]
  70. at com.intellij.junit5.JUnit5IdeaTestRunner.startRunnerWithArgs(JUnit5IdeaTestRunner.java:74) ~[junit5-rt.jar:na]
  71. at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47) ~[junit-rt.jar:na]
  72. at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242) ~[junit-rt.jar:na]
  73. at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70) ~[junit-rt.jar:na]
  74. java.lang.IllegalStateException: org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'ldap_group_topic' available
  75. at org.springframework.cloud.contract.verifier.messaging.stream.StreamPollableChannelMessageReceiver.receive(StreamPollableChannelMessageReceiver.java:55)
  76. at org.springframework.cloud.contract.verifier.messaging.stream.StreamPollableChannelMessageReceiver.receive(StreamPollableChannelMessageReceiver.java:61)
  77. at org.springframework.cloud.contract.verifier.messaging.stream.StreamPollableChannelMessageReceiver.receive(StreamPollableChannelMessageReceiver.java:29)
  78. at org.springframework.cloud.contract.verifier.messaging.stream.StreamStubMessages.receive(StreamStubMessages.java:59)
  79. at org.springframework.cloud.contract.verifier.messaging.stream.StreamStubMessages.receive(StreamStubMessages.java:30)
  80. at org.springframework.cloud.contract.verifier.messaging.internal.ContractVerifierMessaging.receive(ContractVerifierMessaging.java:44)
  81. at org.arkcase.ldap.authority.org.arkcase.ldap.authority.SyncTest.validate_ldapGroupTopicFields(SyncTest.java:30)
  82. at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  83. at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
  84. at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  85. at java.lang.reflect.Method.invoke(Method.java:498)
  86. at org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:686)
  87. at org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60)
  88. at org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131)
  89. at org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:149)
  90. at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(TimeoutExtension.java:140)
  91. at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod(TimeoutExtension.java:84)
  92. at org.junit.jupiter.engine.execution.ExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(ExecutableInvoker.java:115)
  93. at org.junit.jupiter.engine.execution.ExecutableInvoker.lambda$invoke$0(ExecutableInvoker.java:105)
  94. at org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106)
  95. at org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64)
  96. at org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45)
  97. at org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37)
  98. at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:104)
  99. at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:98)
  100. at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$6(TestMethodTestDescriptor.java:212)
  101. at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
  102. at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:208)
  103. at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:137)
  104. at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:71)
  105. at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:135)
  106. at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
  107. at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:125)
  108. at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:135)
  109. at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:123)
  110. at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
  111. at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:122)
  112. at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:80)
  113. at java.util.ArrayList.forEach(ArrayList.java:1257)
  114. at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:38)
  115. at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:139)
  116. at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
  117. at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:125)
  118. at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:135)
  119. at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:123)
  120. at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
  121. at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:122)
  122. at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:80)
  123. at java.util.ArrayList.forEach(ArrayList.java:1257)
  124. at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:38)
  125. at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:139)
  126. at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
  127. at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:125)
  128. at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:135)
  129. at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:123)
  130. at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
  131. at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:122)
  132. at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:80)
  133. at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:32)
  134. at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57)
  135. at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:51)
  136. at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:248)
  137. at org.junit.platform.launcher.core.DefaultLauncher.lambda$execute$5(DefaultLauncher.java:211)
  138. at org.junit.platform.launcher.core.DefaultLauncher.withInterceptedStreams(DefaultLauncher.java:226)
  139. at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:199)
  140. at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:132)
  141. at com.intellij.junit5.JUnit5IdeaTestRunner.startRunnerWithArgs(JUnit5IdeaTestRunner.java:74)
  142. at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
  143. at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
  144. at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
  145. Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'ldap_group_topic' available
  146. at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.java:812)
  147. at org.springframework.beans.factory.support.AbstractBeanFactory.getMergedLocalBeanDefinition(AbstractBeanFactory.java:1282)
  148. at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:297)
  149. at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:276)
  150. at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:207)
  151. at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1115)
  152. at org.springframework.cloud.contract.verifier.messaging.stream.StreamPollableChannelMessageReceiver.receive(StreamPollableChannelMessageReceiver.java:47)
  153. ... 69 more

不管怎样,这是我的代码:

  1. @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.NONE)
  2. @AutoConfigureMessageVerifier
  3. @EmbeddedKafka(partitions = 1, topics = {"ldap_group_topic"})
  4. @ActiveProfiles("test")
  5. public abstract class BaseContractsTestClass
  6. {
  7. public static final String LDAP_GROUP_TOPIC_NAME = "ldap_group_topic";
  8. @Autowired
  9. private KafkaTemplate<String, Object> kafkaAvroTemplate;
  10. @Autowired
  11. private LdapSyncTopicProperties topicProperties;
  12. @Autowired
  13. LdapSyncLogProducer ldapSyncLogProducer;
  14. @Before
  15. public void setup()
  16. {
  17. ldapSyncLogProducer = new LdapSyncLogProducer(kafkaAvroTemplate, topicProperties);
  18. }
  19. public void addSyncedGroup()
  20. {
  21. PodamFactory factory = new PodamFactoryImpl();
  22. factory.getStrategy().setDefaultNumberOfCollectionElements(2);
  23. CharSequenceManufacturer charSequenceManufacturer = new CharSequenceManufacturer();
  24. factory.getStrategy().addOrReplaceTypeManufacturer(CharSequence.class, charSequenceManufacturer);
  25. Group groupEvent = factory.manufacturePojo(Group.class);
  26. this.ldapSyncLogProducer.sendGroupMessage(groupEvent);
  27. }
  28. private class CharSequenceManufacturer implements TypeManufacturer<CharSequence>
  29. {
  30. @Override
  31. public CharSequence getType(DataProviderStrategy strategy, AttributeMetadata attributeMetadata,
  32. Map<String, Type> genericTypesArgumentsMap)
  33. {
  34. StringBuilder buff = new StringBuilder();
  35. while (buff.length() < 10)
  36. {
  37. buff.append(PodamUtils.getNiceCharacter());
  38. }
  39. return buff.toString();
  40. }
  41. }
  42. }

合同文件:

  1. package contracts.org.arkcase.audit.api
  2. import org.springframework.cloud.contract.spec.Contract
  3. Contract.make {
  4. description "ldap_group_topic fields test"
  5. // Label by means of which the output message can be triggered
  6. label 'group-synced'
  7. // input to the contract
  8. input {
  9. // the contract will be triggered by a method
  10. triggeredBy('addSyncedGroup()')
  11. }
  12. // output message of the contract
  13. outputMessage {
  14. // destination to which the output message will be sent
  15. sentTo 'ldap_group_topic'
  16. // the body of the output message
  17. body(
  18. "ldapSyncId": $(anyNonEmptyString()),
  19. "id": $(anyNonEmptyString()),
  20. "distinguishedName": $(anyNonEmptyString()),
  21. "description": $(anyNonEmptyString()),
  22. "displayName": $(anyNonEmptyString()),
  23. "directoryName": $(anyNonEmptyString()),
  24. "ancestorsString": $(anyNonEmptyString()),
  25. "audit": [
  26. "id": $(anyNonEmptyString()),
  27. "traceId": $(anyNonEmptyString()),
  28. "userId": $(anyNonEmptyString()),
  29. "ipAddress": $(anyNonEmptyString()),
  30. "serviceName": $(anyNonEmptyString()),
  31. "serviceInstance": $(anyNonEmptyString()),
  32. "eventDate": $(anyPositiveInt()),
  33. "eventType": $(anyNonEmptyString()),
  34. "objectId": $(anyNonEmptyString()),
  35. "objectType": $(anyNonEmptyString()),
  36. "parentObjectId": $(anyNonEmptyString()),
  37. "parentObjectType": $(anyNonEmptyString())
  38. ]
  39. )
  40. }
  41. }

应用测试.yaml:

  1. spring:
  2. zipkin:
  3. enabled: false
  4. cloud:
  5. discovery.enabled: false
  6. config:
  7. discovery.enabled: false
  8. enabled: false
  9. fail-fast: false
  10. bus:
  11. refresh:
  12. enabled: false
  13. env:
  14. enabled: false
  15. kafka:
  16. bootstrap-servers: ${spring.embedded.kafka.brokers}
  17. consumer:
  18. properties:
  19. "key.serializer": "org.springframework.kafka.support.serializer.JsonSerializer"
  20. "key.deserializer": "org.springframework.kafka.support.serializer.JsonDeserializer"
  21. group-id: groupId
  22. arkcase.kafka:
  23. bootstrapAddress: ${spring.embedded.kafka.brokers}
  24. schemaRegistryAddress: mock://localhost
  25. jwt:
  26. jwt-blacklisted-topic: jwt_blacklisted_topic
  27. jwt-blacklisted-topic-replicas: 1
  28. jwt-blacklisted-topic-partitions: 1
  29. jwt-blacklisted-topic-group-id: jwt_blacklist_${spring.application.name}
  30. retention-ms: "86400000"
  31. eureka:
  32. client:
  33. register-with-eureka: false
  34. fetch-registry: false
  35. enabled: false

配置:

  1. @Configuration
  2. public class KafkaTestConfiguration
  3. {
  4. @Bean
  5. KafkaStubMessagesInitializer kafkaStubMessagesInitializer()
  6. {
  7. return new ContractVerifierMessageInitializer();
  8. }
  9. }

承包商验证消息初始化器

  1. public class ContractVerifierMessageInitializer implements KafkaStubMessagesInitializer
  2. {
  3. @ClassRule
  4. public static EmbeddedKafkaRule embeddedKafka = new EmbeddedKafkaRule(1, true, "ldap_group_topic");
  5. @Override
  6. public Map<String, Consumer> initialize(EmbeddedKafkaBroker broker, KafkaProperties kafkaProperties)
  7. {
  8. Map<String, Consumer> map = new HashMap<>();
  9. for (String topic : broker.getTopics())
  10. {
  11. map.put(topic, prepareListenerr(broker, topic, kafkaProperties));
  12. }
  13. return map;
  14. }
  15. Consumer prepareListenerr(EmbeddedKafkaBroker broker, String destination, KafkaProperties kafkaProperties)
  16. {
  17. Map<String, Object> consumerProperties = KafkaTestUtils.consumerProps(randomUUID().toString(), "false", broker);
  18. consumerProperties.put(ConsumerConfig.AUTO_OFFSET_RESET_CONFIG, "earliest");
  19. consumerProperties.put(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, kafkaProperties.getConsumer().getKeyDeserializer());
  20. consumerProperties.put(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, kafkaProperties.getConsumer().getValueDeserializer());
  21. consumerProperties.put("schema.registry.url", kafkaProperties.getProperties().get("schema.registry.url"));
  22. consumerProperties.put(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, embeddedKafka.getEmbeddedKafka().getBrokersAsString());
  23. DefaultKafkaConsumerFactory<String, String> consumerFactory = new DefaultKafkaConsumerFactory<>(
  24. consumerProperties);
  25. Consumer<String, String> consumer = consumerFactory.createConsumer();
  26. broker.consumeFromAnEmbeddedTopic(consumer, destination);
  27. return consumer;
  28. }
  29. }

在目标文件夹中生成的协定测试:

  1. public class SyncTest extends BaseContractsTestClass {
  2. @Inject ContractVerifierMessaging contractVerifierMessaging;
  3. @Inject ContractVerifierObjectMapper contractVerifierObjectMapper;
  4. @Test
  5. public void validate_ldapGroupTopicFields() throws Exception {
  6. // when:
  7. addSyncedGroup();
  8. // then:
  9. ContractVerifierMessage response = contractVerifierMessaging.receive("ldap_group_topic");
  10. assertThat(response).isNotNull();
  11. // and:
  12. DocumentContext parsedJson = JsonPath.parse(contractVerifierObjectMapper.writeValueAsString(response.getPayload()));
  13. assertThatJson(parsedJson).field("['ldapSyncId']").matches("[\\S\\s]+");
  14. assertThatJson(parsedJson).field("['id']").matches("[\\S\\s]+");
  15. assertThatJson(parsedJson).field("['distinguishedName']").matches("[\\S\\s]+");
  16. assertThatJson(parsedJson).field("['description']").matches("[\\S\\s]+");
  17. assertThatJson(parsedJson).field("['displayName']").matches("[\\S\\s]+");
  18. assertThatJson(parsedJson).field("['directoryName']").matches("[\\S\\s]+");
  19. assertThatJson(parsedJson).field("['ancestorsString']").matches("[\\S\\s]+");
  20. assertThatJson(parsedJson).field("['audit']").field("['id']").matches("[\\S\\s]+");
  21. assertThatJson(parsedJson).field("['audit']").field("['traceId']").matches("[\\S\\s]+");
  22. assertThatJson(parsedJson).field("['audit']").field("['userId']").matches("[\\S\\s]+");
  23. assertThatJson(parsedJson).field("['audit']").field("['ipAddress']").matches("[\\S\\s]+");
  24. assertThatJson(parsedJson).field("['audit']").field("['serviceName']").matches("[\\S\\s]+");
  25. assertThatJson(parsedJson).field("['audit']").field("['serviceInstance']").matches("[\\S\\s]+");
  26. assertThatJson(parsedJson).field("['audit']").field("['eventDate']").matches("([1-9]\\d*)");
  27. assertThatJson(parsedJson).field("['audit']").field("['eventType']").matches("[\\S\\s]+");
  28. assertThatJson(parsedJson).field("['audit']").field("['objectId']").matches("[\\S\\s]+");
  29. assertThatJson(parsedJson).field("['audit']").field("['objectType']").matches("[\\S\\s]+");
  30. assertThatJson(parsedJson).field("['audit']").field("['parentObjectId']").matches("[\\S\\s]+");
  31. assertThatJson(parsedJson).field("['audit']").field("['parentObjectType']").matches("[\\S\\s]+");
  32. }
  33. }

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题