commit
						6f22baa729
					
				|  | @ -7,4 +7,11 @@ description = "Spring Boot AMQP smoke test" | |||
| 
 | ||||
| dependencies { | ||||
| 	implementation(project(":spring-boot-project:spring-boot-starters:spring-boot-starter-amqp")) | ||||
| 
 | ||||
| 	testImplementation(project(":spring-boot-project:spring-boot-starters:spring-boot-starter-test")) | ||||
| 	testImplementation(project(":spring-boot-project:spring-boot-testcontainers")) | ||||
| 	testImplementation(project(":spring-boot-project:spring-boot-tools:spring-boot-test-support")) | ||||
| 	testImplementation("org.awaitility:awaitility") | ||||
| 	testImplementation("org.testcontainers:junit-jupiter") | ||||
| 	testImplementation("org.testcontainers:rabbitmq") | ||||
| } | ||||
|  | @ -1,5 +0,0 @@ | |||
| rabbitmq: | ||||
|   image: rabbitmq | ||||
|   ports: | ||||
|     - "5672:5672" | ||||
|     - "15672:15672" | ||||
|  | @ -1,5 +1,5 @@ | |||
| /* | ||||
|  * Copyright 2012-2019 the original author or authors. | ||||
|  * Copyright 2012-2023 the original author or authors. | ||||
|  * | ||||
|  * Licensed under the Apache License, Version 2.0 (the "License"); | ||||
|  * you may not use this file except in compliance with the License. | ||||
|  | @ -21,15 +21,14 @@ import java.util.Date; | |||
| import org.springframework.amqp.core.Queue; | ||||
| import org.springframework.amqp.rabbit.annotation.RabbitHandler; | ||||
| import org.springframework.amqp.rabbit.annotation.RabbitListener; | ||||
| import org.springframework.boot.ApplicationRunner; | ||||
| import org.springframework.boot.SpringApplication; | ||||
| import org.springframework.boot.autoconfigure.SpringBootApplication; | ||||
| import org.springframework.context.annotation.Bean; | ||||
| import org.springframework.messaging.handler.annotation.Payload; | ||||
| import org.springframework.scheduling.annotation.EnableScheduling; | ||||
| 
 | ||||
| @SpringBootApplication | ||||
| @RabbitListener(queues = "foo") | ||||
| @EnableScheduling | ||||
| public class SampleAmqpSimpleApplication { | ||||
| 
 | ||||
| 	@Bean | ||||
|  | @ -47,6 +46,11 @@ public class SampleAmqpSimpleApplication { | |||
| 		System.out.println(new Date() + ": " + foo); | ||||
| 	} | ||||
| 
 | ||||
| 	@Bean | ||||
| 	public ApplicationRunner runner(Sender sender) { | ||||
| 		return (args) -> sender.send("Hello"); | ||||
| 	} | ||||
| 
 | ||||
| 	public static void main(String[] args) { | ||||
| 		SpringApplication.run(SampleAmqpSimpleApplication.class, args); | ||||
| 	} | ||||
|  |  | |||
|  | @ -1,5 +1,5 @@ | |||
| /* | ||||
|  * Copyright 2012-2019 the original author or authors. | ||||
|  * Copyright 2012-2023 the original author or authors. | ||||
|  * | ||||
|  * Licensed under the Apache License, Version 2.0 (the "License"); | ||||
|  * you may not use this file except in compliance with the License. | ||||
|  | @ -18,16 +18,14 @@ package smoketest.amqp; | |||
| 
 | ||||
| import org.springframework.amqp.rabbit.core.RabbitTemplate; | ||||
| import org.springframework.beans.factory.annotation.Autowired; | ||||
| import org.springframework.scheduling.annotation.Scheduled; | ||||
| 
 | ||||
| public class Sender { | ||||
| 
 | ||||
| 	@Autowired | ||||
| 	private RabbitTemplate rabbitTemplate; | ||||
| 
 | ||||
| 	@Scheduled(fixedDelay = 1000L) | ||||
| 	public void send() { | ||||
| 		this.rabbitTemplate.convertAndSend("foo", "hello"); | ||||
| 	public void send(String message) { | ||||
| 		this.rabbitTemplate.convertAndSend("foo", message); | ||||
| 	} | ||||
| 
 | ||||
| } | ||||
|  |  | |||
|  | @ -0,0 +1,56 @@ | |||
| /* | ||||
|  * Copyright 2012-2023 the original author or authors. | ||||
|  * | ||||
|  * Licensed under the Apache License, Version 2.0 (the "License"); | ||||
|  * you may not use this file except in compliance with the License. | ||||
|  * You may obtain a copy of the License at | ||||
|  * | ||||
|  *      https://www.apache.org/licenses/LICENSE-2.0 | ||||
|  * | ||||
|  * Unless required by applicable law or agreed to in writing, software | ||||
|  * distributed under the License is distributed on an "AS IS" BASIS, | ||||
|  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
|  * See the License for the specific language governing permissions and | ||||
|  * limitations under the License. | ||||
|  */ | ||||
| 
 | ||||
| package smoketest.amqp; | ||||
| 
 | ||||
| import java.time.Duration; | ||||
| 
 | ||||
| import org.awaitility.Awaitility; | ||||
| import org.junit.jupiter.api.Test; | ||||
| import org.junit.jupiter.api.extension.ExtendWith; | ||||
| import org.testcontainers.containers.RabbitMQContainer; | ||||
| import org.testcontainers.junit.jupiter.Container; | ||||
| import org.testcontainers.junit.jupiter.Testcontainers; | ||||
| 
 | ||||
| import org.springframework.beans.factory.annotation.Autowired; | ||||
| import org.springframework.boot.test.context.SpringBootTest; | ||||
| import org.springframework.boot.test.system.CapturedOutput; | ||||
| import org.springframework.boot.test.system.OutputCaptureExtension; | ||||
| import org.springframework.boot.testcontainers.service.connection.ServiceConnection; | ||||
| import org.springframework.boot.testsupport.testcontainers.DockerImageNames; | ||||
| 
 | ||||
| import static org.assertj.core.api.Assertions.assertThat; | ||||
| 
 | ||||
| @SpringBootTest | ||||
| @Testcontainers(disabledWithoutDocker = true) | ||||
| @ExtendWith(OutputCaptureExtension.class) | ||||
| class SampleAmqpSimpleApplicationTests { | ||||
| 
 | ||||
| 	@Container | ||||
| 	@ServiceConnection | ||||
| 	static final RabbitMQContainer rabbit = new RabbitMQContainer(DockerImageNames.rabbit()) | ||||
| 		.withStartupTimeout(Duration.ofMinutes(4)); | ||||
| 
 | ||||
| 	@Autowired | ||||
| 	private Sender sender; | ||||
| 
 | ||||
| 	@Test | ||||
| 	void sendSimpleMessage(CapturedOutput output) { | ||||
| 		this.sender.send("Test message"); | ||||
| 		Awaitility.waitAtMost(Duration.ofMinutes(1)).untilAsserted(() -> assertThat(output).contains("Test message")); | ||||
| 	} | ||||
| 
 | ||||
| } | ||||
		Loading…
	
		Reference in New Issue