JAVA-13721 Format, Fix Package, Upgrade version of all the articles
This commit is contained in:
@@ -29,12 +29,14 @@
|
||||
<artifactId>spring-context</artifactId>
|
||||
<version>${spring-framework.version}</version>
|
||||
</dependency>
|
||||
|
||||
<!-- utils -->
|
||||
<dependency>
|
||||
<groupId>org.apache.commons</groupId>
|
||||
<artifactId>commons-lang3</artifactId>
|
||||
<version>${commons-lang3.version}</version>
|
||||
</dependency>
|
||||
|
||||
<!-- test scoped -->
|
||||
<dependency>
|
||||
<groupId>org.mockito</groupId>
|
||||
@@ -55,9 +57,8 @@
|
||||
</build>
|
||||
|
||||
<properties>
|
||||
<spring-framework.version>5.3.20</spring-framework.version>
|
||||
<!-- testing -->
|
||||
<mockito.version>4.6.1</mockito.version>
|
||||
<spring-framework.version>6.0.8</spring-framework.version>
|
||||
<mockito.version>5.3.1</mockito.version>
|
||||
</properties>
|
||||
|
||||
</project>
|
||||
@@ -1,31 +0,0 @@
|
||||
package com.baeldung.app.api;
|
||||
|
||||
public class MessageDTO {
|
||||
private String from;
|
||||
private String to;
|
||||
private String text;
|
||||
|
||||
public String getFrom() {
|
||||
return from;
|
||||
}
|
||||
|
||||
public void setFrom(String from) {
|
||||
this.from = from;
|
||||
}
|
||||
|
||||
public String getTo() {
|
||||
return to;
|
||||
}
|
||||
|
||||
public void setTo(String to) {
|
||||
this.to = to;
|
||||
}
|
||||
|
||||
public String getText() {
|
||||
return text;
|
||||
}
|
||||
|
||||
public void setText(String text) {
|
||||
this.text = text;
|
||||
}
|
||||
}
|
||||
-27
@@ -1,27 +0,0 @@
|
||||
package com.baeldung.app.rest;
|
||||
|
||||
import com.baeldung.app.api.Flower;
|
||||
import com.baeldung.domain.service.FlowerService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
|
||||
@Controller
|
||||
@RequestMapping("/flowers")
|
||||
public class FlowerController {
|
||||
|
||||
@Autowired
|
||||
private FlowerService flowerService;
|
||||
|
||||
@PostMapping("/isAFlower")
|
||||
public String isAFlower (@RequestBody String flower) {
|
||||
return flowerService.analyze(flower);
|
||||
}
|
||||
|
||||
@PostMapping("/isABigFlower")
|
||||
public Boolean isABigFlower (@RequestBody Flower flower) {
|
||||
return flowerService.isABigFlower(flower.getName(), flower.getPetals());
|
||||
}
|
||||
}
|
||||
-34
@@ -1,34 +0,0 @@
|
||||
package com.baeldung.app.rest;
|
||||
|
||||
import com.baeldung.app.api.MessageDTO;
|
||||
import com.baeldung.domain.model.Message;
|
||||
import com.baeldung.domain.service.MessageService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
|
||||
import java.time.Instant;
|
||||
import java.util.Date;
|
||||
import java.util.UUID;
|
||||
|
||||
@Controller
|
||||
@RequestMapping("/message")
|
||||
public class MessageController {
|
||||
|
||||
@Autowired
|
||||
private MessageService messageService;
|
||||
|
||||
@PostMapping
|
||||
public Message createMessage (@RequestBody MessageDTO messageDTO) {
|
||||
Message message = new Message();
|
||||
message.setText(messageDTO.getText());
|
||||
message.setFrom(messageDTO.getFrom());
|
||||
message.setTo(messageDTO.getTo());
|
||||
message.setDate(Date.from(Instant.now()));
|
||||
message.setId(UUID.randomUUID());
|
||||
|
||||
return messageService.deliverMessage(message);
|
||||
}
|
||||
}
|
||||
@@ -1,53 +0,0 @@
|
||||
package com.baeldung.domain.model;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.UUID;
|
||||
|
||||
public class Message {
|
||||
|
||||
private String from;
|
||||
private String to;
|
||||
private String text;
|
||||
private Date date;
|
||||
private UUID id;
|
||||
|
||||
public String getFrom() {
|
||||
return from;
|
||||
}
|
||||
|
||||
public void setFrom(String from) {
|
||||
this.from = from;
|
||||
}
|
||||
|
||||
public String getTo() {
|
||||
return to;
|
||||
}
|
||||
|
||||
public void setTo(String to) {
|
||||
this.to = to;
|
||||
}
|
||||
|
||||
public String getText() {
|
||||
return text;
|
||||
}
|
||||
|
||||
public void setText(String text) {
|
||||
this.text = text;
|
||||
}
|
||||
|
||||
public Date getDate() {
|
||||
return date;
|
||||
}
|
||||
|
||||
public void setDate(Date date) {
|
||||
this.date = date;
|
||||
}
|
||||
|
||||
public UUID getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(UUID id) {
|
||||
this.id = id;
|
||||
}
|
||||
}
|
||||
-9
@@ -1,9 +0,0 @@
|
||||
package com.baeldung.junit5.mockito.repository;
|
||||
|
||||
import com.baeldung.junit5.mockito.User;
|
||||
|
||||
public interface MailClient {
|
||||
|
||||
void sendUserRegistrationMail(User user);
|
||||
|
||||
}
|
||||
-9
@@ -1,9 +0,0 @@
|
||||
package com.baeldung.junit5.mockito.service;
|
||||
|
||||
import com.baeldung.junit5.mockito.User;
|
||||
|
||||
public interface UserService {
|
||||
|
||||
User register(User user);
|
||||
|
||||
}
|
||||
+20
-9
@@ -1,14 +1,25 @@
|
||||
package com.baeldung.mockito.argumentcaptor;
|
||||
|
||||
public class Credentials {
|
||||
private final String name;
|
||||
private final String password;
|
||||
private final String key;
|
||||
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;
|
||||
}
|
||||
public Credentials(String name, String password, String key) {
|
||||
this.name = name;
|
||||
this.password = password;
|
||||
this.key = key;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public String getPassword() {
|
||||
return password;
|
||||
}
|
||||
|
||||
public String getKey() {
|
||||
return key;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.baeldung.app.api;
|
||||
package com.baeldung.mockito.argumentmatchers;
|
||||
|
||||
public class Flower {
|
||||
|
||||
+53
@@ -0,0 +1,53 @@
|
||||
package com.baeldung.mockito.argumentmatchers;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.UUID;
|
||||
|
||||
public class Message {
|
||||
|
||||
private String from;
|
||||
private String to;
|
||||
private String text;
|
||||
private Date date;
|
||||
private UUID id;
|
||||
|
||||
public String getFrom() {
|
||||
return from;
|
||||
}
|
||||
|
||||
public void setFrom(String from) {
|
||||
this.from = from;
|
||||
}
|
||||
|
||||
public String getTo() {
|
||||
return to;
|
||||
}
|
||||
|
||||
public void setTo(String to) {
|
||||
this.to = to;
|
||||
}
|
||||
|
||||
public String getText() {
|
||||
return text;
|
||||
}
|
||||
|
||||
public void setText(String text) {
|
||||
this.text = text;
|
||||
}
|
||||
|
||||
public Date getDate() {
|
||||
return date;
|
||||
}
|
||||
|
||||
public void setDate(Date date) {
|
||||
this.date = date;
|
||||
}
|
||||
|
||||
public UUID getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(UUID id) {
|
||||
this.id = id;
|
||||
}
|
||||
}
|
||||
+32
@@ -0,0 +1,32 @@
|
||||
package com.baeldung.mockito.argumentmatchers;
|
||||
|
||||
public class MessageDTO {
|
||||
|
||||
private String from;
|
||||
private String to;
|
||||
private String text;
|
||||
|
||||
public String getFrom() {
|
||||
return from;
|
||||
}
|
||||
|
||||
public void setFrom(String from) {
|
||||
this.from = from;
|
||||
}
|
||||
|
||||
public String getTo() {
|
||||
return to;
|
||||
}
|
||||
|
||||
public void setTo(String to) {
|
||||
this.to = to;
|
||||
}
|
||||
|
||||
public String getText() {
|
||||
return text;
|
||||
}
|
||||
|
||||
public void setText(String text) {
|
||||
this.text = text;
|
||||
}
|
||||
}
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
package com.baeldung.mockito.argumentmatchers.controller;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
|
||||
import com.baeldung.mockito.argumentmatchers.Flower;
|
||||
import com.baeldung.mockito.argumentmatchers.service.FlowerService;
|
||||
|
||||
@Controller
|
||||
@RequestMapping("/flowers")
|
||||
public class FlowerController {
|
||||
|
||||
@Autowired
|
||||
private FlowerService flowerService;
|
||||
|
||||
@PostMapping("/isAFlower")
|
||||
public String isAFlower(@RequestBody String flower) {
|
||||
return flowerService.analyze(flower);
|
||||
}
|
||||
|
||||
@PostMapping("/isABigFlower")
|
||||
public Boolean isABigFlower(@RequestBody Flower flower) {
|
||||
return flowerService.isABigFlower(flower.getName(), flower.getPetals());
|
||||
}
|
||||
}
|
||||
+35
@@ -0,0 +1,35 @@
|
||||
package com.baeldung.mockito.argumentmatchers.controller;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
|
||||
import com.baeldung.mockito.argumentmatchers.Message;
|
||||
import com.baeldung.mockito.argumentmatchers.MessageDTO;
|
||||
import com.baeldung.mockito.argumentmatchers.service.MessageService;
|
||||
|
||||
import java.time.Instant;
|
||||
import java.util.Date;
|
||||
import java.util.UUID;
|
||||
|
||||
@Controller
|
||||
@RequestMapping("/message")
|
||||
public class MessageController {
|
||||
|
||||
@Autowired
|
||||
private MessageService messageService;
|
||||
|
||||
@PostMapping
|
||||
public Message createMessage(@RequestBody MessageDTO messageDTO) {
|
||||
Message message = new Message();
|
||||
message.setText(messageDTO.getText());
|
||||
message.setFrom(messageDTO.getFrom());
|
||||
message.setTo(messageDTO.getTo());
|
||||
message.setDate(Date.from(Instant.now()));
|
||||
message.setId(UUID.randomUUID());
|
||||
|
||||
return messageService.deliverMessage(message);
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.baeldung.domain.service;
|
||||
package com.baeldung.mockito.argumentmatchers.service;
|
||||
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
+3
-2
@@ -1,8 +1,9 @@
|
||||
package com.baeldung.domain.service;
|
||||
package com.baeldung.mockito.argumentmatchers.service;
|
||||
|
||||
import com.baeldung.domain.model.Message;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import com.baeldung.mockito.argumentmatchers.Message;
|
||||
|
||||
@Service
|
||||
public class MessageService {
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.baeldung.junit5.mockito;
|
||||
package com.baeldung.mockito.junit5;
|
||||
|
||||
public class User {
|
||||
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
package com.baeldung.mockito.junit5.repository;
|
||||
|
||||
import com.baeldung.mockito.junit5.User;
|
||||
|
||||
public interface MailClient {
|
||||
|
||||
void sendUserRegistrationMail(User user);
|
||||
|
||||
}
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.baeldung.junit5.mockito.repository;
|
||||
package com.baeldung.mockito.junit5.repository;
|
||||
|
||||
public interface SettingRepository {
|
||||
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
package com.baeldung.junit5.mockito.repository;
|
||||
package com.baeldung.mockito.junit5.repository;
|
||||
|
||||
import com.baeldung.junit5.mockito.User;
|
||||
import com.baeldung.mockito.junit5.User;
|
||||
|
||||
public interface UserRepository {
|
||||
|
||||
+5
-5
@@ -1,9 +1,9 @@
|
||||
package com.baeldung.junit5.mockito.service;
|
||||
package com.baeldung.mockito.junit5.service;
|
||||
|
||||
import com.baeldung.junit5.mockito.User;
|
||||
import com.baeldung.junit5.mockito.repository.MailClient;
|
||||
import com.baeldung.junit5.mockito.repository.SettingRepository;
|
||||
import com.baeldung.junit5.mockito.repository.UserRepository;
|
||||
import com.baeldung.mockito.junit5.User;
|
||||
import com.baeldung.mockito.junit5.repository.MailClient;
|
||||
import com.baeldung.mockito.junit5.repository.SettingRepository;
|
||||
import com.baeldung.mockito.junit5.repository.UserRepository;
|
||||
|
||||
public class DefaultUserService implements UserService {
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.baeldung.junit5.mockito.service;
|
||||
package com.baeldung.mockito.junit5.service;
|
||||
|
||||
public class Errors {
|
||||
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
package com.baeldung.mockito.junit5.service;
|
||||
|
||||
import com.baeldung.mockito.junit5.User;
|
||||
|
||||
public interface UserService {
|
||||
|
||||
User register(User user);
|
||||
|
||||
}
|
||||
+10
-11
@@ -6,17 +6,16 @@ import java.util.stream.IntStream;
|
||||
|
||||
public class StaticUtils {
|
||||
|
||||
private StaticUtils() {
|
||||
}
|
||||
private StaticUtils() {
|
||||
}
|
||||
|
||||
public static List<Integer> range(int start, int end) {
|
||||
return IntStream.range(start, end)
|
||||
.boxed()
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
|
||||
public static String name() {
|
||||
return "Baeldung";
|
||||
}
|
||||
public static List<Integer> range(int start, int end) {
|
||||
return IntStream.range(start, end)
|
||||
.boxed()
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
|
||||
public static String name() {
|
||||
return "Baeldung";
|
||||
}
|
||||
}
|
||||
|
||||
-56
@@ -1,56 +0,0 @@
|
||||
package com.baeldung.app.rest;
|
||||
|
||||
import static org.mockito.ArgumentMatchers.any;
|
||||
import static org.mockito.ArgumentMatchers.argThat;
|
||||
import static org.mockito.Mockito.times;
|
||||
import static org.mockito.Mockito.verify;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
import org.mockito.InjectMocks;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.junit.jupiter.MockitoExtension;
|
||||
|
||||
import com.baeldung.app.api.MessageDTO;
|
||||
import com.baeldung.domain.model.Message;
|
||||
import com.baeldung.domain.service.MessageService;
|
||||
import com.baeldung.domain.util.MessageMatcher;
|
||||
|
||||
@ExtendWith(MockitoExtension.class)
|
||||
class MessageControllerUnitTest {
|
||||
|
||||
@InjectMocks
|
||||
private MessageController messageController;
|
||||
|
||||
@Mock
|
||||
private MessageService messageService;
|
||||
|
||||
@Test
|
||||
void givenMsg_whenVerifyUsingAnyMatcher_thenOk() {
|
||||
MessageDTO messageDTO = new MessageDTO();
|
||||
messageDTO.setFrom("me");
|
||||
messageDTO.setTo("you");
|
||||
messageDTO.setText("Hello, you!");
|
||||
|
||||
messageController.createMessage(messageDTO);
|
||||
|
||||
verify(messageService, times(1)).deliverMessage(any(Message.class));
|
||||
}
|
||||
|
||||
@Test
|
||||
void givenMsg_whenVerifyUsingMessageMatcher_thenOk() {
|
||||
MessageDTO messageDTO = new MessageDTO();
|
||||
messageDTO.setFrom("me");
|
||||
messageDTO.setTo("you");
|
||||
messageDTO.setText("Hello, you!");
|
||||
|
||||
messageController.createMessage(messageDTO);
|
||||
|
||||
Message message = new Message();
|
||||
message.setFrom("me");
|
||||
message.setTo("you");
|
||||
message.setText("Hello, you!");
|
||||
|
||||
verify(messageService, times(1)).deliverMessage(argThat(new MessageMatcher(message)));
|
||||
}
|
||||
}
|
||||
@@ -2,9 +2,9 @@ package com.baeldung.mockito;
|
||||
|
||||
public final class FinalList extends MyList {
|
||||
|
||||
@Override
|
||||
public int size() {
|
||||
return 1;
|
||||
}
|
||||
@Override
|
||||
public int size() {
|
||||
return 1;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
-32
@@ -1,32 +0,0 @@
|
||||
package com.baeldung.mockito;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
class MockFinalsUnitTest {
|
||||
|
||||
@Test
|
||||
void whenMockFinalMethodMockWorks() {
|
||||
|
||||
MyList myList = new MyList();
|
||||
|
||||
MyList mock = mock(MyList.class);
|
||||
when(mock.finalMethod()).thenReturn(1);
|
||||
|
||||
assertThat(mock.finalMethod()).isNotEqualTo(myList.finalMethod());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void whenMockFinalClassMockWorks() {
|
||||
|
||||
FinalList finalList = new FinalList();
|
||||
|
||||
FinalList mock = mock(FinalList.class);
|
||||
when(mock.size()).thenReturn(2);
|
||||
|
||||
assertThat(mock.size()).isNotEqualTo(finalList.size());
|
||||
}
|
||||
}
|
||||
-127
@@ -1,127 +0,0 @@
|
||||
package com.baeldung.mockito;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
import static org.mockito.Mockito.doReturn;
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.spy;
|
||||
import static org.mockito.Mockito.verify;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
import org.mockito.ArgumentCaptor;
|
||||
import org.mockito.Captor;
|
||||
import org.mockito.InjectMocks;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.Spy;
|
||||
import org.mockito.junit.jupiter.MockitoExtension;
|
||||
|
||||
@ExtendWith(MockitoExtension.class)
|
||||
class MockitoAnnotationUnitTest {
|
||||
|
||||
@Mock
|
||||
private List<String> mockedList;
|
||||
|
||||
@Spy
|
||||
private List<String> spiedList = new ArrayList<>();
|
||||
|
||||
// Use either @RunWith(MockitoJUnitRunner.class) or manually openMocks in the @Before method
|
||||
/*
|
||||
@Before
|
||||
public void init() {
|
||||
MockitoAnnotations.openMocks(this);
|
||||
}
|
||||
*/
|
||||
|
||||
// tests
|
||||
|
||||
@Test
|
||||
void whenNotUseMockAnnotation_thenCorrect() {
|
||||
final List<String> mockList = mock(List.class);
|
||||
mockList.add("one");
|
||||
verify(mockList).add("one");
|
||||
assertEquals(0, mockList.size());
|
||||
|
||||
when(mockList.size()).thenReturn(100);
|
||||
assertEquals(100, mockList.size());
|
||||
}
|
||||
|
||||
@Test
|
||||
void whenUseMockAnnotation_thenMockIsInjected() {
|
||||
mockedList.add("one");
|
||||
verify(mockedList).add("one");
|
||||
assertEquals(0, mockedList.size());
|
||||
|
||||
when(mockedList.size()).thenReturn(100);
|
||||
assertEquals(100, mockedList.size());
|
||||
}
|
||||
|
||||
@Test
|
||||
void whenNotUseSpyAnnotation_thenCorrect() {
|
||||
final List<String> spyList = spy(new ArrayList<String>());
|
||||
spyList.add("one");
|
||||
spyList.add("two");
|
||||
|
||||
verify(spyList).add("one");
|
||||
verify(spyList).add("two");
|
||||
|
||||
assertEquals(2, spyList.size());
|
||||
|
||||
doReturn(100).when(spyList).size();
|
||||
assertEquals(100, spyList.size());
|
||||
}
|
||||
|
||||
@Test
|
||||
void whenUseSpyAnnotation_thenSpyIsInjectedCorrectly() {
|
||||
spiedList.add("one");
|
||||
spiedList.add("two");
|
||||
|
||||
verify(spiedList).add("one");
|
||||
verify(spiedList).add("two");
|
||||
|
||||
assertEquals(2, spiedList.size());
|
||||
|
||||
doReturn(100).when(spiedList).size();
|
||||
assertEquals(100, spiedList.size());
|
||||
}
|
||||
|
||||
@Test
|
||||
void whenNotUseCaptorAnnotation_thenCorrect() {
|
||||
final List<String> mockList = mock(List.class);
|
||||
final ArgumentCaptor<String> arg = ArgumentCaptor.forClass(String.class);
|
||||
mockList.add("one");
|
||||
verify(mockList).add(arg.capture());
|
||||
|
||||
assertEquals("one", arg.getValue());
|
||||
}
|
||||
|
||||
@Captor
|
||||
private
|
||||
ArgumentCaptor<String> argCaptor;
|
||||
|
||||
@Test
|
||||
void whenUseCaptorAnnotation_thenTheSame() {
|
||||
mockedList.add("one");
|
||||
verify(mockedList).add(argCaptor.capture());
|
||||
|
||||
assertEquals("one", argCaptor.getValue());
|
||||
}
|
||||
|
||||
@Mock
|
||||
private Map<String, String> wordMap;
|
||||
|
||||
@InjectMocks
|
||||
private MyDictionary dic = new MyDictionary();
|
||||
|
||||
@Test
|
||||
void whenUseInjectMocksAnnotation_thenCorrect() {
|
||||
when(wordMap.get("aWord")).thenReturn("aMeaning");
|
||||
|
||||
assertEquals("aMeaning", dic.getMeaning("aWord"));
|
||||
}
|
||||
|
||||
}
|
||||
-23
@@ -1,23 +0,0 @@
|
||||
package com.baeldung.mockito;
|
||||
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertThrows;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.mockito.Mock;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
class MockitoAnnotationsUninitializedUnitTest {
|
||||
|
||||
@Mock
|
||||
List<String> mockedList;
|
||||
|
||||
@Test
|
||||
void whenMockitoAnnotationsUninitialized_thenNPEThrown() {
|
||||
assertThrows(NullPointerException.class, () -> {
|
||||
when(mockedList.size()).thenReturn(1);
|
||||
});
|
||||
}
|
||||
}
|
||||
-71
@@ -1,71 +0,0 @@
|
||||
package com.baeldung.mockito;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertThrows;
|
||||
import static org.mockito.ArgumentMatchers.anyString;
|
||||
import static org.mockito.Mockito.doThrow;
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
import org.mockito.Mockito;
|
||||
import org.mockito.junit.jupiter.MockitoExtension;
|
||||
|
||||
@ExtendWith(MockitoExtension.class)
|
||||
class MockitoExceptionUnitTest {
|
||||
|
||||
@Test
|
||||
void whenConfigNonVoidRetunMethodToThrowEx_thenExIsThrown() {
|
||||
MyDictionary dictMock = mock(MyDictionary.class);
|
||||
when(dictMock.getMeaning(anyString())).thenThrow(NullPointerException.class);
|
||||
assertThrows(NullPointerException.class, () -> {
|
||||
dictMock.getMeaning("word");
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
void whenConfigVoidRetunMethodToThrowEx_thenExIsThrown() {
|
||||
MyDictionary dictMock = mock(MyDictionary.class);
|
||||
doThrow(IllegalStateException.class).when(dictMock)
|
||||
.add(anyString(), anyString());
|
||||
assertThrows(IllegalStateException.class, () -> {
|
||||
dictMock.add("word", "meaning");
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
void whenConfigNonVoidRetunMethodToThrowExWithNewExObj_thenExIsThrown() {
|
||||
MyDictionary dictMock = mock(MyDictionary.class);
|
||||
when(dictMock.getMeaning(anyString())).thenThrow(new NullPointerException("Error occurred"));
|
||||
assertThrows(NullPointerException.class, () -> {
|
||||
dictMock.getMeaning("word");
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
void whenConfigVoidRetunMethodToThrowExWithNewExObj_thenExIsThrown() {
|
||||
MyDictionary dictMock = mock(MyDictionary.class);
|
||||
doThrow(new IllegalStateException("Error occurred")).when(dictMock)
|
||||
.add(anyString(), anyString());
|
||||
assertThrows(IllegalStateException.class, () -> {
|
||||
dictMock.add("word", "meaning");
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
// =====
|
||||
|
||||
@Test
|
||||
void givenSpy_whenConfigNonVoidRetunMethodToThrowEx_thenExIsThrown() {
|
||||
MyDictionary dict = new MyDictionary();
|
||||
MyDictionary spy = Mockito.spy(dict);
|
||||
when(spy.getMeaning(anyString())).thenThrow(NullPointerException.class);
|
||||
assertThrows(NullPointerException.class, () -> {
|
||||
spy.getMeaning("word");
|
||||
});
|
||||
}
|
||||
}
|
||||
-67
@@ -1,67 +0,0 @@
|
||||
package com.baeldung.mockito;
|
||||
|
||||
import static org.apache.commons.lang3.RandomStringUtils.randomAlphabetic;
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.assertj.core.api.Assertions.assertThatThrownBy;
|
||||
import static org.mockito.ArgumentMatchers.anyString;
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.times;
|
||||
import static org.mockito.Mockito.verify;
|
||||
import static org.mockito.Mockito.when;
|
||||
import static org.mockito.Mockito.withSettings;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.mockito.MockSettings;
|
||||
import org.mockito.exceptions.verification.TooFewActualInvocations;
|
||||
import org.mockito.invocation.InvocationOnMock;
|
||||
import org.mockito.stubbing.Answer;
|
||||
|
||||
class MockitoMockUnitTest {
|
||||
|
||||
@Test
|
||||
void whenUsingSimpleMock_thenCorrect() {
|
||||
MyList listMock = mock(MyList.class);
|
||||
when(listMock.add(anyString())).thenReturn(false);
|
||||
boolean added = listMock.add(randomAlphabetic(6));
|
||||
|
||||
verify(listMock).add(anyString());
|
||||
assertThat(added).isFalse();
|
||||
}
|
||||
|
||||
@Test
|
||||
void whenUsingMockWithName_thenCorrect() {
|
||||
MyList listMock = mock(MyList.class, "myMock");
|
||||
when(listMock.add(anyString())).thenReturn(false);
|
||||
listMock.add(randomAlphabetic(6));
|
||||
|
||||
assertThatThrownBy(() -> verify(listMock, times(2)).add(anyString()))
|
||||
.isInstanceOf(TooFewActualInvocations.class)
|
||||
.hasMessageContaining("myMock.add");
|
||||
}
|
||||
|
||||
private static class CustomAnswer implements Answer<Boolean> {
|
||||
@Override
|
||||
public Boolean answer(InvocationOnMock invocation) throws Throwable {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
void whenUsingMockWithAnswer_thenCorrect() {
|
||||
MyList listMock = mock(MyList.class, new CustomAnswer());
|
||||
boolean added = listMock.add(randomAlphabetic(6));
|
||||
|
||||
verify(listMock).add(anyString());
|
||||
assertThat(added).isFalse();
|
||||
}
|
||||
|
||||
@Test
|
||||
void whenUsingMockWithSettings_thenCorrect() {
|
||||
MockSettings customSettings = withSettings().defaultAnswer(new CustomAnswer());
|
||||
MyList listMock = mock(MyList.class, customSettings);
|
||||
boolean added = listMock.add(randomAlphabetic(6));
|
||||
|
||||
verify(listMock).add(anyString());
|
||||
assertThat(added).isFalse();
|
||||
}
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user