Тестирование JPAQueries с TestEntityManager - PullRequest
0 голосов
/ 28 марта 2019

У меня есть сервис, который извлекает сложные 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;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...