Validating Spring Data JPA Repository Operations in spring-boot-examples
This test suite validates Spring Data JPA repository operations in a Spring Boot application. It covers essential database interactions including CRUD operations, custom SQL queries, and pagination functionality for User entities.
Test Coverage Overview
Implementation Analysis
Technical Details
Best Practices Demonstrated
ityouknow/spring-boot-examples
spring-boot-jpa/spring-boot-jpa/src/test/java/com/neo/repository/UserRepositoryTests.java
package com.neo.repository;
import com.neo.model.User;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import org.springframework.test.context.junit4.SpringRunner;
import jakarta.annotation.Resource;
import java.text.DateFormat;
import java.util.Date;
@RunWith(SpringRunner.class)
@SpringBootTest
public class UserRepositoryTests {
@Resource
private UserRepository userRepository;
@Test
public void testSave() {
Date date = new Date();
DateFormat dateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG);
String formattedDate = dateFormat.format(date);
userRepository.save(new User("aa", "aa123456","[email protected]", "aa", formattedDate));
userRepository.save(new User("bb", "bb123456","[email protected]", "bb", formattedDate));
userRepository.save(new User("cc", "cc123456","[email protected]", "cc", formattedDate));
// Assert.assertEquals(3, userRepository.findAll().size());
// Assert.assertEquals("bb", userRepository.findByUserNameOrEmail("bb", "[email protected]").getNickName());
// userRepository.delete(userRepository.findByUserName("aa"));
}
@Test
public void testBaseQuery() {
Date date = new Date();
DateFormat dateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG);
String formattedDate = dateFormat.format(date);
User user=new User("ff", "ff123456","[email protected]", "ff", formattedDate);
userRepository.findAll();
userRepository.findById(3L);
userRepository.save(user);
user.setId(2L);
userRepository.delete(user);
userRepository.count();
userRepository.existsById(3L);
}
@Test
public void testCustomSql() {
userRepository.modifyById("neo",3L);
userRepository.deleteById(3L);
userRepository.findByEmail("[email protected]");
}
@Test
public void testPageQuery() {
int page=1,size=2;
Pageable pageable = PageRequest.of(page, size, Sort.by("id").descending());
userRepository.findALL(pageable);
userRepository.findByNickName("aa", pageable);
}
}