mirror of
https://github.com/spring-projects/spring-boot.git
synced 2024-07-15 01:07:30 +08:00
Merge branch '2.7.x' into 3.0.x
Closes gh-35254
This commit is contained in:
commit
0776d01f16
@ -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.
|
||||
@ -38,7 +38,9 @@ public class MailHealthIndicator extends AbstractHealthIndicator {
|
||||
|
||||
@Override
|
||||
protected void doHealthCheck(Builder builder) throws Exception {
|
||||
builder.withDetail("location", this.mailSender.getHost() + ":" + this.mailSender.getPort());
|
||||
int port = this.mailSender.getPort();
|
||||
builder.withDetail("location", (port == JavaMailSenderImpl.DEFAULT_PORT) ? this.mailSender.getHost()
|
||||
: this.mailSender.getHost() + ":" + this.mailSender.getPort());
|
||||
this.mailSender.testConnection();
|
||||
builder.up();
|
||||
}
|
||||
|
@ -56,25 +56,47 @@ class MailHealthIndicatorTests {
|
||||
session.addProvider(new Provider(Type.TRANSPORT, "success", SuccessTransport.class.getName(), "Test", "1.0.0"));
|
||||
this.mailSender = mock(JavaMailSenderImpl.class);
|
||||
given(this.mailSender.getHost()).willReturn("smtp.acme.org");
|
||||
given(this.mailSender.getPort()).willReturn(25);
|
||||
given(this.mailSender.getSession()).willReturn(session);
|
||||
this.indicator = new MailHealthIndicator(this.mailSender);
|
||||
}
|
||||
|
||||
@Test
|
||||
void smtpIsUp() {
|
||||
void smtpOnDefaultPortIsUp() {
|
||||
given(this.mailSender.getPort()).willReturn(-1);
|
||||
given(this.mailSender.getProtocol()).willReturn("success");
|
||||
Health health = this.indicator.health();
|
||||
assertThat(health.getStatus()).isEqualTo(Status.UP);
|
||||
assertThat(health.getDetails()).containsEntry("location", "smtp.acme.org:25");
|
||||
assertThat(health.getDetails()).containsEntry("location", "smtp.acme.org");
|
||||
}
|
||||
|
||||
@Test
|
||||
void smtpIsDown() throws MessagingException {
|
||||
void smtpOnDefaultPortIsDown() throws MessagingException {
|
||||
given(this.mailSender.getPort()).willReturn(-1);
|
||||
willThrow(new MessagingException("A test exception")).given(this.mailSender).testConnection();
|
||||
Health health = this.indicator.health();
|
||||
assertThat(health.getStatus()).isEqualTo(Status.DOWN);
|
||||
assertThat(health.getDetails()).containsEntry("location", "smtp.acme.org:25");
|
||||
assertThat(health.getDetails()).containsEntry("location", "smtp.acme.org");
|
||||
Object errorMessage = health.getDetails().get("error");
|
||||
assertThat(errorMessage).isNotNull();
|
||||
assertThat(errorMessage.toString().contains("A test exception")).isTrue();
|
||||
}
|
||||
|
||||
@Test
|
||||
void smtpOnCustomPortIsUp() {
|
||||
given(this.mailSender.getPort()).willReturn(1234);
|
||||
given(this.mailSender.getProtocol()).willReturn("success");
|
||||
Health health = this.indicator.health();
|
||||
assertThat(health.getStatus()).isEqualTo(Status.UP);
|
||||
assertThat(health.getDetails()).containsEntry("location", "smtp.acme.org:1234");
|
||||
}
|
||||
|
||||
@Test
|
||||
void smtpOnCustomPortIsDown() throws MessagingException {
|
||||
given(this.mailSender.getPort()).willReturn(1234);
|
||||
willThrow(new MessagingException("A test exception")).given(this.mailSender).testConnection();
|
||||
Health health = this.indicator.health();
|
||||
assertThat(health.getStatus()).isEqualTo(Status.DOWN);
|
||||
assertThat(health.getDetails()).containsEntry("location", "smtp.acme.org:1234");
|
||||
Object errorMessage = health.getDetails().get("error");
|
||||
assertThat(errorMessage).isNotNull();
|
||||
assertThat(errorMessage.toString()).contains("A test exception");
|
||||
|
Loading…
Reference in New Issue
Block a user