Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,7 @@ SELECT CASE WHEN COUNT(a) > 0 THEN TRUE ELSE FALSE END
JOIN a.treatment t
WHERE t.specialist.id = :specialistId
AND a.dateTime = :date
AND a.status <> com.capgemini.training.appointmentbooking.common.datatype.AppointmentStatus.CANCELLED
""")
boolean hasConflictingAppointmentBySpecialistIdAndDateTime(@Param("specialistId") Long specialistId, @Param("date") Instant date);

Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
package com.capgemini.training.appointmentbooking.dataaccess.repository;

import jakarta.persistence.EntityManager;
import org.springframework.data.jpa.repository.support.JpaRepositoryImplementation;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.repository.NoRepositoryBean;

@NoRepositoryBean
public interface BaseJpaRepository<T, ID> extends JpaRepositoryImplementation<T, ID> {
public interface BaseJpaRepository<T, ID> extends JpaRepository<T, ID> {

EntityManager getEntityManager();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
@Repository
public interface TreatmentRepository extends BaseJpaRepository<TreatmentEntity, Long> {

List<TreatmentEntity> findAllByName(String name);
List<TreatmentEntity> findAllByNameStartingWithIgnoringCase(String name);

List<TreatmentEntity> findByNameNamedQuery(String name);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@

@Repository
public interface UserRepository extends BaseJpaRepository<UserEntity, Long> {

default List<UserEntity> findByCriteria(UserCriteria criteria) {
Objects.requireNonNull(criteria, "criteria must not be null");

Expand All @@ -41,4 +40,5 @@ default List<UserEntity> findByCriteria(UserCriteria criteria) {
return entityManager.createQuery(cq).getResultList();
}


}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package com.capgemini.training.appointmentbooking.common;

import com.capgemini.training.appointmentbooking.dataaccess.config.DataaccessConfiguration;
import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
import org.springframework.context.annotation.Import;
import org.springframework.transaction.annotation.Transactional;

@DataJpaTest
@Import(DataaccessConfiguration.class)
public class BaseDataJpaTest extends BaseTest{
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,16 +7,13 @@

import org.junit.jupiter.api.Test;
import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
import org.springframework.context.annotation.Import;

import com.capgemini.training.appointmentbooking.dataaccess.config.DataaccessConfiguration;

import jakarta.persistence.EntityManager;
import jakarta.persistence.PersistenceContext;
import org.springframework.data.repository.config.BootstrapMode;

@DataJpaTest
@Import(DataaccessConfiguration.class)
public class EntitySmokeTestIT {
@DataJpaTest(bootstrapMode = BootstrapMode.LAZY)
public class EntitySmokeIT {

@PersistenceContext
private EntityManager em;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,28 +1,22 @@
package com.capgemini.training.appointmentbooking.dataaccess.repository;

import com.capgemini.training.appointmentbooking.common.BaseTest;
import com.capgemini.training.appointmentbooking.common.BaseDataJpaTest;
import com.capgemini.training.appointmentbooking.common.datatype.AppointmentStatus;
import com.capgemini.training.appointmentbooking.dataaccess.config.DataaccessConfiguration;
import com.capgemini.training.appointmentbooking.dataaccess.entity.AppointmentEntity;
import com.capgemini.training.appointmentbooking.dataaccess.entity.ClientEntity;
import com.capgemini.training.appointmentbooking.dataaccess.entity.SpecialistEntity;
import com.capgemini.training.appointmentbooking.dataaccess.entity.TreatmentEntity;
import com.capgemini.training.appointmentbooking.dataaccess.repository.criteria.AppointmentCriteria;
import jakarta.inject.Inject;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
import org.springframework.context.annotation.Import;
import org.springframework.transaction.annotation.Transactional;

import java.time.Instant;
import java.util.List;
import java.util.Optional;


@Transactional
@DataJpaTest
@Import(DataaccessConfiguration.class)
public class AppointmentRepositoryTestIT extends BaseTest {

public class AppointmentRepositoryIT extends BaseDataJpaTest {

@Inject
private AppointmentRepository appointmentRepository;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,21 +1,15 @@
package com.capgemini.training.appointmentbooking.dataaccess.repository;

import com.capgemini.training.appointmentbooking.common.BaseTest;
import com.capgemini.training.appointmentbooking.dataaccess.config.DataaccessConfiguration;
import com.capgemini.training.appointmentbooking.common.BaseDataJpaTest;
import com.capgemini.training.appointmentbooking.dataaccess.entity.ClientEntity;
import jakarta.inject.Inject;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
import org.springframework.context.annotation.Import;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;


@Transactional
@DataJpaTest
@Import(DataaccessConfiguration.class)
public class ClientRepositoryTestIT extends BaseTest {

public class ClientRepositoryIT extends BaseDataJpaTest {

@Inject
private ClientRepository clientRepository;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,22 +1,15 @@
package com.capgemini.training.appointmentbooking.dataaccess.repository;

import com.capgemini.training.appointmentbooking.common.BaseTest;
import com.capgemini.training.appointmentbooking.common.BaseDataJpaTest;
import com.capgemini.training.appointmentbooking.common.datatype.Specialization;
import com.capgemini.training.appointmentbooking.dataaccess.config.DataaccessConfiguration;
import com.capgemini.training.appointmentbooking.dataaccess.entity.SpecialistEntity;
import jakarta.inject.Inject;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
import org.springframework.context.annotation.Import;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;


@Transactional
@DataJpaTest
@Import(DataaccessConfiguration.class)
public class SpecialistRepositoryTestIT extends BaseTest {
public class SpecialistRepositoryIT extends BaseDataJpaTest {

@Inject
private SpecialistRepository specialistRepository;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,25 +1,18 @@
package com.capgemini.training.appointmentbooking.dataaccess.repository;

import com.capgemini.training.appointmentbooking.common.BaseTest;
import com.capgemini.training.appointmentbooking.common.BaseDataJpaTest;
import com.capgemini.training.appointmentbooking.common.datatype.Specialization;
import com.capgemini.training.appointmentbooking.dataaccess.config.DataaccessConfiguration;
import com.capgemini.training.appointmentbooking.dataaccess.entity.SpecialistEntity;
import com.capgemini.training.appointmentbooking.dataaccess.entity.TreatmentEntity;
import com.capgemini.training.appointmentbooking.dataaccess.repository.criteria.TreatmentCriteria;
import jakarta.inject.Inject;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
import org.springframework.context.annotation.Import;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;
import java.util.Optional;


@Transactional
@DataJpaTest
@Import(DataaccessConfiguration.class)
public class TreatmentRepositoryTestIT extends BaseTest {
public class TreatmentRepositoryIT extends BaseDataJpaTest {

@Inject
private TreatmentRepository treatmentRepository;
Expand All @@ -30,10 +23,10 @@ public class TreatmentRepositoryTestIT extends BaseTest {
@Test
void shouldFindTreatmentsByName() {
// given
String treatmentName = "Konsultacja dentystyczna";
String treatmentName = "konsUltacja de";

// when
List<TreatmentEntity> result = treatmentRepository.findAllByName(treatmentName);
List<TreatmentEntity> result = treatmentRepository.findAllByNameStartingWithIgnoringCase(treatmentName);

// then
assertThat(result).hasSize(1);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,22 +1,15 @@
package com.capgemini.training.appointmentbooking.dataaccess.repository;

import com.capgemini.training.appointmentbooking.common.BaseTest;
import com.capgemini.training.appointmentbooking.dataaccess.config.DataaccessConfiguration;
import com.capgemini.training.appointmentbooking.common.BaseDataJpaTest;
import com.capgemini.training.appointmentbooking.dataaccess.entity.UserEntity;
import com.capgemini.training.appointmentbooking.dataaccess.repository.criteria.UserCriteria;
import jakarta.inject.Inject;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
import org.springframework.context.annotation.Import;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;


@Transactional
@DataJpaTest
@Import(DataaccessConfiguration.class)
public class UserRepositoryTestIT extends BaseTest {
public class UserRepositoryIT extends BaseDataJpaTest {

@Inject
private UserRepository userRepository;
Expand Down
Loading