From 2a88d24386eec8969f275f25d3b226e3ac944313 Mon Sep 17 00:00:00 2001 From: developerDiv Date: Sat, 11 Jul 2020 16:42:03 +0100 Subject: [PATCH 1/4] Initial commit of ArgumentCaptor --- .../argumentcaptor/AuthenticationStatus.java | 7 ++ .../mockito/argumentcaptor/Credentials.java | 15 +++ .../argumentcaptor/DeliveryPlatform.java | 10 ++ .../mockito/argumentcaptor/Email.java | 47 ++++++++ .../mockito/argumentcaptor/EmailService.java | 36 +++++++ .../mockito/argumentcaptor/Format.java | 6 ++ .../mockito/argumentcaptor/ServiceStatus.java | 7 ++ .../argumentcaptor/EmailServiceUnitTest.java | 100 ++++++++++++++++++ 8 files changed, 228 insertions(+) create mode 100644 testing-modules/mockito-2/src/main/java/com/baeldung/mockito/argumentcaptor/AuthenticationStatus.java create mode 100644 testing-modules/mockito-2/src/main/java/com/baeldung/mockito/argumentcaptor/Credentials.java create mode 100644 testing-modules/mockito-2/src/main/java/com/baeldung/mockito/argumentcaptor/DeliveryPlatform.java create mode 100644 testing-modules/mockito-2/src/main/java/com/baeldung/mockito/argumentcaptor/Email.java create mode 100644 testing-modules/mockito-2/src/main/java/com/baeldung/mockito/argumentcaptor/EmailService.java create mode 100644 testing-modules/mockito-2/src/main/java/com/baeldung/mockito/argumentcaptor/Format.java create mode 100644 testing-modules/mockito-2/src/main/java/com/baeldung/mockito/argumentcaptor/ServiceStatus.java create mode 100644 testing-modules/mockito-2/src/test/java/com/baeldung/mockito/argumentcaptor/EmailServiceUnitTest.java diff --git a/testing-modules/mockito-2/src/main/java/com/baeldung/mockito/argumentcaptor/AuthenticationStatus.java b/testing-modules/mockito-2/src/main/java/com/baeldung/mockito/argumentcaptor/AuthenticationStatus.java new file mode 100644 index 0000000000..8307b4323b --- /dev/null +++ b/testing-modules/mockito-2/src/main/java/com/baeldung/mockito/argumentcaptor/AuthenticationStatus.java @@ -0,0 +1,7 @@ +package com.baeldung.mockito.argumentcaptor; + +public enum AuthenticationStatus { + AUTHENTICATED, + NOT_AUTHENTICATED, + ERROR +} diff --git a/testing-modules/mockito-2/src/main/java/com/baeldung/mockito/argumentcaptor/Credentials.java b/testing-modules/mockito-2/src/main/java/com/baeldung/mockito/argumentcaptor/Credentials.java new file mode 100644 index 0000000000..5aec15505e --- /dev/null +++ b/testing-modules/mockito-2/src/main/java/com/baeldung/mockito/argumentcaptor/Credentials.java @@ -0,0 +1,15 @@ +package com.baeldung.mockito.argumentcaptor; + +public class Credentials { + private final String name; + private final String password; + private final String key; + + public Credentials(String name, String password, String key) { + + this.name = name; + this.password = password; + this.key = key; + } +} + diff --git a/testing-modules/mockito-2/src/main/java/com/baeldung/mockito/argumentcaptor/DeliveryPlatform.java b/testing-modules/mockito-2/src/main/java/com/baeldung/mockito/argumentcaptor/DeliveryPlatform.java new file mode 100644 index 0000000000..dbad1e1bcf --- /dev/null +++ b/testing-modules/mockito-2/src/main/java/com/baeldung/mockito/argumentcaptor/DeliveryPlatform.java @@ -0,0 +1,10 @@ +package com.baeldung.mockito.argumentcaptor; + +public interface DeliveryPlatform { + + void send(Email email); + + String getServiceStatus(); + + AuthenticationStatus authenticate(Credentials credentials); +} diff --git a/testing-modules/mockito-2/src/main/java/com/baeldung/mockito/argumentcaptor/Email.java b/testing-modules/mockito-2/src/main/java/com/baeldung/mockito/argumentcaptor/Email.java new file mode 100644 index 0000000000..6fc753a31c --- /dev/null +++ b/testing-modules/mockito-2/src/main/java/com/baeldung/mockito/argumentcaptor/Email.java @@ -0,0 +1,47 @@ +package com.baeldung.mockito.argumentcaptor; + +public class Email { + + private String address; + private String subject; + private String body; + private Format format; + + public Email(String address, String subject, String body) { + this.address = address; + this.subject = subject; + this.body = body; + } + + public String getAddress() { + return address; + } + + public void setAddress(String address) { + this.address = address; + } + + public String getSubject() { + return subject; + } + + public void setSubject(String subject) { + this.subject = subject; + } + + public String getBody() { + return body; + } + + public void setBody(String body) { + this.body = body; + } + + public Format getFormat() { + return format; + } + + public void setFormat(Format format) { + this.format = format; + } +} diff --git a/testing-modules/mockito-2/src/main/java/com/baeldung/mockito/argumentcaptor/EmailService.java b/testing-modules/mockito-2/src/main/java/com/baeldung/mockito/argumentcaptor/EmailService.java new file mode 100644 index 0000000000..c368f41d2f --- /dev/null +++ b/testing-modules/mockito-2/src/main/java/com/baeldung/mockito/argumentcaptor/EmailService.java @@ -0,0 +1,36 @@ +package com.baeldung.mockito.argumentcaptor; + +public class EmailService { + + private DeliveryPlatform platform; + + public EmailService(DeliveryPlatform platform) { + this.platform = platform; + } + + public void send(String to, String subject, String body, boolean html) { + Format format = Format.TEXT_ONLY; + if (html) { + format = Format.HTML; + } + Email email = new Email(to, subject, body); + email.setFormat(format); + platform.send(email); + } + + public ServiceStatus checkServiceStatus() { + if (platform.getServiceStatus().equals("OK")) { + return ServiceStatus.UP; + } else { + return ServiceStatus.DOWN; + } + } + + public boolean authenticatedSuccessfully(Credentials credentials) { + if (platform.authenticate(credentials).equals(AuthenticationStatus.AUTHENTICATED)) { + return true; + } else { + return false; + } + } +} diff --git a/testing-modules/mockito-2/src/main/java/com/baeldung/mockito/argumentcaptor/Format.java b/testing-modules/mockito-2/src/main/java/com/baeldung/mockito/argumentcaptor/Format.java new file mode 100644 index 0000000000..4c10375159 --- /dev/null +++ b/testing-modules/mockito-2/src/main/java/com/baeldung/mockito/argumentcaptor/Format.java @@ -0,0 +1,6 @@ +package com.baeldung.mockito.argumentcaptor; + +public enum Format { + TEXT_ONLY, + HTML +} diff --git a/testing-modules/mockito-2/src/main/java/com/baeldung/mockito/argumentcaptor/ServiceStatus.java b/testing-modules/mockito-2/src/main/java/com/baeldung/mockito/argumentcaptor/ServiceStatus.java new file mode 100644 index 0000000000..65def5af64 --- /dev/null +++ b/testing-modules/mockito-2/src/main/java/com/baeldung/mockito/argumentcaptor/ServiceStatus.java @@ -0,0 +1,7 @@ +package com.baeldung.mockito.argumentcaptor; + +public enum ServiceStatus { + UP, + DOWN, + AUTHENTICATED +} diff --git a/testing-modules/mockito-2/src/test/java/com/baeldung/mockito/argumentcaptor/EmailServiceUnitTest.java b/testing-modules/mockito-2/src/test/java/com/baeldung/mockito/argumentcaptor/EmailServiceUnitTest.java new file mode 100644 index 0000000000..cdae118e92 --- /dev/null +++ b/testing-modules/mockito-2/src/test/java/com/baeldung/mockito/argumentcaptor/EmailServiceUnitTest.java @@ -0,0 +1,100 @@ +package com.baeldung.mockito.argumentcaptor; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.ArgumentCaptor; +import org.mockito.Captor; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.junit.MockitoJUnitRunner; + +import static org.junit.Assert.*; +import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +@RunWith(MockitoJUnitRunner.class) +public class EmailServiceUnitTest { + + @InjectMocks + EmailService emailService; + + @Mock + DeliveryPlatform platform; + + @Captor + ArgumentCaptor emailCaptor; + + @Captor + ArgumentCaptor credentialsCaptor; + + @Test + public void whenDoesNotSupportHtml_expectTextOnlyEmailFormat() { + String to = "info@baeldung.com"; + String subject = "Using ArgumentCaptor"; + String body = "Article on using ArgumentCaptor"; + + emailService.send(to, subject, body, false); + + verify(platform).send(emailCaptor.capture()); + Email emailCaptorValue = emailCaptor.getValue(); + assertEquals(Format.TEXT_ONLY, emailCaptorValue.getFormat()); + } + + @Test + public void send_whenDoesSupportHtml_expectHTMLEmailFormat() { + String to = "baeldung@baeldung.com"; + String subject = "Great New Course!"; + String body = "Try out our new course."; + + emailService.send(to, subject, body, true); + + verify(platform).send(emailCaptor.capture()); + Email value = emailCaptor.getValue(); + assertEquals(Format.HTML, value.getFormat()); + } + + @Test + public void getServiceStatus_whenServiceRunning_expectUpResponse() { + when(platform.getServiceStatus()).thenReturn("OK"); + + ServiceStatus serviceStatus = emailService.checkServiceStatus(); + + assertEquals(ServiceStatus.UP, serviceStatus); + } + + @Test + public void getServiceStatus_whenServiceNotRunning_expectDownResponse() { + when(platform.getServiceStatus()).thenReturn("Error"); + + ServiceStatus serviceStatus = emailService.checkServiceStatus(); + + assertEquals(ServiceStatus.DOWN, serviceStatus); + } + + @Test + public void usingArgumemtMatcher_whenAuthenticatedWithValidCredentials_expectTrue() { + Credentials credentials = new Credentials("baeldung", "correct_password", "correct_key"); + when(platform.authenticate(eq(credentials))).thenReturn(AuthenticationStatus.AUTHENTICATED); + + assertTrue(emailService.authenticatedSuccessfully(credentials)); + } + + @Test + public void usingArgumentCapture_whenAuthenticatedWithValidCredentials_expectTrue() { + Credentials credentials = new Credentials("baeldung", "correct_password", "correct_key"); + when(platform.authenticate(credentialsCaptor.capture())).thenReturn(AuthenticationStatus.AUTHENTICATED); + + assertTrue(emailService.authenticatedSuccessfully(credentials)); + assertEquals(credentials, credentialsCaptor.getValue()); + } + + @Test + public void authenticate_whenNotAuthenticated_expectFalse() { + Credentials credentials = new Credentials("baeldung", "incorrect_password", "incorrect_key"); + when(platform.authenticate(credentialsCaptor.capture())).thenReturn(AuthenticationStatus.NOT_AUTHENTICATED); + + assertFalse(emailService.authenticatedSuccessfully(credentials)); + assertEquals(credentials, credentialsCaptor.getValue()); + } +} \ No newline at end of file From 8309e562681e944970f2f7277d06f33258031cc7 Mon Sep 17 00:00:00 2001 From: developerDiv Date: Sun, 19 Jul 2020 15:44:48 +0100 Subject: [PATCH 2/4] Rename tests --- .../mockito/argumentcaptor/Credentials.java | 1 - .../argumentcaptor/EmailServiceUnitTest.java | 21 +++++++++---------- 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/testing-modules/mockito-2/src/main/java/com/baeldung/mockito/argumentcaptor/Credentials.java b/testing-modules/mockito-2/src/main/java/com/baeldung/mockito/argumentcaptor/Credentials.java index 5aec15505e..d5d60bb6fc 100644 --- a/testing-modules/mockito-2/src/main/java/com/baeldung/mockito/argumentcaptor/Credentials.java +++ b/testing-modules/mockito-2/src/main/java/com/baeldung/mockito/argumentcaptor/Credentials.java @@ -6,7 +6,6 @@ public class Credentials { private final String key; public Credentials(String name, String password, String key) { - this.name = name; this.password = password; this.key = key; diff --git a/testing-modules/mockito-2/src/test/java/com/baeldung/mockito/argumentcaptor/EmailServiceUnitTest.java b/testing-modules/mockito-2/src/test/java/com/baeldung/mockito/argumentcaptor/EmailServiceUnitTest.java index cdae118e92..2208bc7c7b 100644 --- a/testing-modules/mockito-2/src/test/java/com/baeldung/mockito/argumentcaptor/EmailServiceUnitTest.java +++ b/testing-modules/mockito-2/src/test/java/com/baeldung/mockito/argumentcaptor/EmailServiceUnitTest.java @@ -32,7 +32,7 @@ public class EmailServiceUnitTest { public void whenDoesNotSupportHtml_expectTextOnlyEmailFormat() { String to = "info@baeldung.com"; String subject = "Using ArgumentCaptor"; - String body = "Article on using ArgumentCaptor"; + String body = "Hey, let'use ArgumentCaptor"; emailService.send(to, subject, body, false); @@ -42,10 +42,10 @@ public class EmailServiceUnitTest { } @Test - public void send_whenDoesSupportHtml_expectHTMLEmailFormat() { - String to = "baeldung@baeldung.com"; - String subject = "Great New Course!"; - String body = "Try out our new course."; + public void whenDoesSupportHtml_expectHTMLEmailFormat() { + String to = "info@baeldung.com"; + String subject = "Using ArgumentCaptor"; + String body = "Hey, let'use ArgumentCaptor"; emailService.send(to, subject, body, true); @@ -55,7 +55,7 @@ public class EmailServiceUnitTest { } @Test - public void getServiceStatus_whenServiceRunning_expectUpResponse() { + public void whenServiceRunning_expectUpResponse() { when(platform.getServiceStatus()).thenReturn("OK"); ServiceStatus serviceStatus = emailService.checkServiceStatus(); @@ -64,7 +64,7 @@ public class EmailServiceUnitTest { } @Test - public void getServiceStatus_whenServiceNotRunning_expectDownResponse() { + public void whenServiceNotRunning_expectDownResponse() { when(platform.getServiceStatus()).thenReturn("Error"); ServiceStatus serviceStatus = emailService.checkServiceStatus(); @@ -73,7 +73,7 @@ public class EmailServiceUnitTest { } @Test - public void usingArgumemtMatcher_whenAuthenticatedWithValidCredentials_expectTrue() { + public void usingArgumentMatcher_whenAuthenticatedWithValidCredentials_expectTrue() { Credentials credentials = new Credentials("baeldung", "correct_password", "correct_key"); when(platform.authenticate(eq(credentials))).thenReturn(AuthenticationStatus.AUTHENTICATED); @@ -90,11 +90,10 @@ public class EmailServiceUnitTest { } @Test - public void authenticate_whenNotAuthenticated_expectFalse() { + public void whenNotAuthenticated_expectFalse() { Credentials credentials = new Credentials("baeldung", "incorrect_password", "incorrect_key"); - when(platform.authenticate(credentialsCaptor.capture())).thenReturn(AuthenticationStatus.NOT_AUTHENTICATED); + when(platform.authenticate(eq(credentials))).thenReturn(AuthenticationStatus.NOT_AUTHENTICATED); assertFalse(emailService.authenticatedSuccessfully(credentials)); - assertEquals(credentials, credentialsCaptor.getValue()); } } \ No newline at end of file From ab755bf0988833e15380c4c1c8c1fb89cea1b984 Mon Sep 17 00:00:00 2001 From: developerDiv Date: Tue, 21 Jul 2020 21:32:40 +0100 Subject: [PATCH 3/4] Add static class to 'eq' and 'when' for greater readability. --- .../argumentcaptor/EmailServiceUnitTest.java | 24 +++++++------------ 1 file changed, 9 insertions(+), 15 deletions(-) diff --git a/testing-modules/mockito-2/src/test/java/com/baeldung/mockito/argumentcaptor/EmailServiceUnitTest.java b/testing-modules/mockito-2/src/test/java/com/baeldung/mockito/argumentcaptor/EmailServiceUnitTest.java index 2208bc7c7b..9d18957b2e 100644 --- a/testing-modules/mockito-2/src/test/java/com/baeldung/mockito/argumentcaptor/EmailServiceUnitTest.java +++ b/testing-modules/mockito-2/src/test/java/com/baeldung/mockito/argumentcaptor/EmailServiceUnitTest.java @@ -2,16 +2,10 @@ package com.baeldung.mockito.argumentcaptor; import org.junit.Test; import org.junit.runner.RunWith; -import org.mockito.ArgumentCaptor; -import org.mockito.Captor; -import org.mockito.InjectMocks; -import org.mockito.Mock; +import org.mockito.*; import org.mockito.junit.MockitoJUnitRunner; import static org.junit.Assert.*; -import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; @RunWith(MockitoJUnitRunner.class) public class EmailServiceUnitTest { @@ -36,7 +30,7 @@ public class EmailServiceUnitTest { emailService.send(to, subject, body, false); - verify(platform).send(emailCaptor.capture()); + Mockito.verify(platform).send(emailCaptor.capture()); Email emailCaptorValue = emailCaptor.getValue(); assertEquals(Format.TEXT_ONLY, emailCaptorValue.getFormat()); } @@ -49,14 +43,14 @@ public class EmailServiceUnitTest { emailService.send(to, subject, body, true); - verify(platform).send(emailCaptor.capture()); + Mockito.verify(platform).send(emailCaptor.capture()); Email value = emailCaptor.getValue(); assertEquals(Format.HTML, value.getFormat()); } @Test public void whenServiceRunning_expectUpResponse() { - when(platform.getServiceStatus()).thenReturn("OK"); + Mockito.when(platform.getServiceStatus()).thenReturn("OK"); ServiceStatus serviceStatus = emailService.checkServiceStatus(); @@ -65,7 +59,7 @@ public class EmailServiceUnitTest { @Test public void whenServiceNotRunning_expectDownResponse() { - when(platform.getServiceStatus()).thenReturn("Error"); + Mockito.when(platform.getServiceStatus()).thenReturn("Error"); ServiceStatus serviceStatus = emailService.checkServiceStatus(); @@ -75,15 +69,15 @@ public class EmailServiceUnitTest { @Test public void usingArgumentMatcher_whenAuthenticatedWithValidCredentials_expectTrue() { Credentials credentials = new Credentials("baeldung", "correct_password", "correct_key"); - when(platform.authenticate(eq(credentials))).thenReturn(AuthenticationStatus.AUTHENTICATED); + Mockito.when(platform.authenticate(Mockito.eq(credentials))).thenReturn(AuthenticationStatus.AUTHENTICATED); assertTrue(emailService.authenticatedSuccessfully(credentials)); } @Test - public void usingArgumentCapture_whenAuthenticatedWithValidCredentials_expectTrue() { + public void usingArgumentCaptor_whenAuthenticatedWithValidCredentials_expectTrue() { Credentials credentials = new Credentials("baeldung", "correct_password", "correct_key"); - when(platform.authenticate(credentialsCaptor.capture())).thenReturn(AuthenticationStatus.AUTHENTICATED); + Mockito.when(platform.authenticate(credentialsCaptor.capture())).thenReturn(AuthenticationStatus.AUTHENTICATED); assertTrue(emailService.authenticatedSuccessfully(credentials)); assertEquals(credentials, credentialsCaptor.getValue()); @@ -92,7 +86,7 @@ public class EmailServiceUnitTest { @Test public void whenNotAuthenticated_expectFalse() { Credentials credentials = new Credentials("baeldung", "incorrect_password", "incorrect_key"); - when(platform.authenticate(eq(credentials))).thenReturn(AuthenticationStatus.NOT_AUTHENTICATED); + Mockito.when(platform.authenticate(Mockito.eq(credentials))).thenReturn(AuthenticationStatus.NOT_AUTHENTICATED); assertFalse(emailService.authenticatedSuccessfully(credentials)); } From 55d15037c0825efd94e48048a8d1889bdbbf4563 Mon Sep 17 00:00:00 2001 From: developerDiv Date: Sun, 26 Jul 2020 17:08:44 +0100 Subject: [PATCH 4/4] Rename DeliveryPlatform send method to 'deliver' to aid readability and avoiding confusion with EmailService.send method Re-arrange order of mocks and inject mocks Rename argument matcher and captor tests --- .../mockito/argumentcaptor/DeliveryPlatform.java | 2 +- .../mockito/argumentcaptor/EmailService.java | 2 +- .../argumentcaptor/EmailServiceUnitTest.java | 14 +++++++------- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/testing-modules/mockito-2/src/main/java/com/baeldung/mockito/argumentcaptor/DeliveryPlatform.java b/testing-modules/mockito-2/src/main/java/com/baeldung/mockito/argumentcaptor/DeliveryPlatform.java index dbad1e1bcf..6cbaf7b97c 100644 --- a/testing-modules/mockito-2/src/main/java/com/baeldung/mockito/argumentcaptor/DeliveryPlatform.java +++ b/testing-modules/mockito-2/src/main/java/com/baeldung/mockito/argumentcaptor/DeliveryPlatform.java @@ -2,7 +2,7 @@ package com.baeldung.mockito.argumentcaptor; public interface DeliveryPlatform { - void send(Email email); + void deliver(Email email); String getServiceStatus(); diff --git a/testing-modules/mockito-2/src/main/java/com/baeldung/mockito/argumentcaptor/EmailService.java b/testing-modules/mockito-2/src/main/java/com/baeldung/mockito/argumentcaptor/EmailService.java index c368f41d2f..d22feaf8a4 100644 --- a/testing-modules/mockito-2/src/main/java/com/baeldung/mockito/argumentcaptor/EmailService.java +++ b/testing-modules/mockito-2/src/main/java/com/baeldung/mockito/argumentcaptor/EmailService.java @@ -15,7 +15,7 @@ public class EmailService { } Email email = new Email(to, subject, body); email.setFormat(format); - platform.send(email); + platform.deliver(email); } public ServiceStatus checkServiceStatus() { diff --git a/testing-modules/mockito-2/src/test/java/com/baeldung/mockito/argumentcaptor/EmailServiceUnitTest.java b/testing-modules/mockito-2/src/test/java/com/baeldung/mockito/argumentcaptor/EmailServiceUnitTest.java index 9d18957b2e..5ed7be7d6e 100644 --- a/testing-modules/mockito-2/src/test/java/com/baeldung/mockito/argumentcaptor/EmailServiceUnitTest.java +++ b/testing-modules/mockito-2/src/test/java/com/baeldung/mockito/argumentcaptor/EmailServiceUnitTest.java @@ -10,12 +10,12 @@ import static org.junit.Assert.*; @RunWith(MockitoJUnitRunner.class) public class EmailServiceUnitTest { - @InjectMocks - EmailService emailService; - @Mock DeliveryPlatform platform; + @InjectMocks + EmailService emailService; + @Captor ArgumentCaptor emailCaptor; @@ -30,7 +30,7 @@ public class EmailServiceUnitTest { emailService.send(to, subject, body, false); - Mockito.verify(platform).send(emailCaptor.capture()); + Mockito.verify(platform).deliver(emailCaptor.capture()); Email emailCaptorValue = emailCaptor.getValue(); assertEquals(Format.TEXT_ONLY, emailCaptorValue.getFormat()); } @@ -43,7 +43,7 @@ public class EmailServiceUnitTest { emailService.send(to, subject, body, true); - Mockito.verify(platform).send(emailCaptor.capture()); + Mockito.verify(platform).deliver(emailCaptor.capture()); Email value = emailCaptor.getValue(); assertEquals(Format.HTML, value.getFormat()); } @@ -67,7 +67,7 @@ public class EmailServiceUnitTest { } @Test - public void usingArgumentMatcher_whenAuthenticatedWithValidCredentials_expectTrue() { + public void whenUsingArgumentMatcherForValidCredentials_expectTrue() { Credentials credentials = new Credentials("baeldung", "correct_password", "correct_key"); Mockito.when(platform.authenticate(Mockito.eq(credentials))).thenReturn(AuthenticationStatus.AUTHENTICATED); @@ -75,7 +75,7 @@ public class EmailServiceUnitTest { } @Test - public void usingArgumentCaptor_whenAuthenticatedWithValidCredentials_expectTrue() { + public void whenUsingArgumentCaptorForValidCredentials_expectTrue() { Credentials credentials = new Credentials("baeldung", "correct_password", "correct_key"); Mockito.when(platform.authenticate(credentialsCaptor.capture())).thenReturn(AuthenticationStatus.AUTHENTICATED);