У меня есть сервис, который извлекает сложные JPAQueries.Я должен написать тесты базы данных h2 для этого сервиса.Служба автоматической проводки в этой службе «выборки» создает JPAQueries.Поэтому я должен смоделировать этот сервис с автоматической проводной связью и вернуть возвращенный buildQuery для службы извлечения.Я сделал для этого урок от Baeldung, и там говорится, что я должен использовать TestEntityManager.Теперь я хочу построить JPAQuery для возврата службы QueryBuilderService, которая является поддельной.Когда я сделал
new JPAQuery(entityManager)
, он хочет EntityManager в качестве параметра, а не TestEntityManager.
У кого-нибудь есть хорошее решение для этого?Существует что-то вроде "TestJPAQuery" или что-то?Пожалуйста, помогите:)
Кто-то спросил код, который я хочу проверить:
@Service()
public class TnsTicketLoaderService extends TnsBaseService implements ITnsTicketLoaderService{
private ITnsTicketQueryBuilder ticketQueryBuilder;
public TnsTicketLoaderService(ITnsTicketQueryBuilder ticketQueryBuilder) {
this.ticketQueryBuilder = ticketQueryBuilder;
}
@Override
public List<TnsTicket> loadTickets(TnsTicketConfiguration ticketConfiguration) {
return this.buildQuery(ticketConfiguration).fetch();
}
@Override
public int countTickets(TnsTicketConfiguration ticketConfiguration) {
return (int) this.buildQuery(ticketConfiguration).fetchCount();
}
private JPAQuery buildQuery(TnsTicketConfiguration ticketConfiguration) {
JPAQuery query = ticketQueryBuilder.prepareQuery();
ticketQueryBuilder.setTicketIds(query, ticketConfiguration.getIds(), ticketConfiguration.isIncludeDoneTickets())
.setStaffAndRolePermission(query, ticketConfiguration.getStaff(), ticketConfiguration.getStaffOrRolePermission())
.setNotAssignedToEmployees(query, ticketConfiguration.getNotAssignedToEmployees())
.setAllTechniciansWithoutSelf(query, ticketConfiguration.isAllTechnicians())
.setCompanyIds(query, ticketConfiguration.getCompanies())
.setDepartmentIds(query, ticketConfiguration.getDepartments())
.setRemitterId(query, ticketConfiguration.getRemitterId())
.setProjectId(query, ticketConfiguration.getProjectId())
.setPhaseId(query, ticketConfiguration.getPhaseId())
.setRepair(query, ticketConfiguration.getIsRepair())
.setForProjectTickets(query, ticketConfiguration.getProjectFilter())
.setNoProjectTickets(query, ticketConfiguration.isNoProjectTicket())
.setLocalTicketAdminFilter(query, ticketConfiguration.getLocalTicketAdminFilter())
.setRoleFilter(query, ticketConfiguration.getRoleFilter())
.setCheckPermissionsOfUser(
query,
ticketConfiguration.isCheckPermissionsOfUser(),
ticketConfiguration.isHideLocalAdminTickets(),
ticketConfiguration.getExcludedTicketId()
);
return query;
}
}