Skip to content

Commit 549f84f

Browse files
committed
Merge remote-tracking branch 'origin/feature/3-business-logic' into feature/4-services-merge-from-3-new
2 parents 0cf90f4 + 0401299 commit 549f84f

File tree

14 files changed

+46
-48
lines changed

14 files changed

+46
-48
lines changed

src/main/java/com/capgemini/training/appointmentbooking/AppointmentBookingAppApplication.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,9 @@
11
package com.capgemini.training.appointmentbooking;
22

3-
import com.capgemini.training.appointmentbooking.dataaccess.repository.impl.BaseJpaRepositoryImpl;
43
import org.springframework.boot.SpringApplication;
54
import org.springframework.boot.autoconfigure.SpringBootApplication;
6-
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
75

86
@SpringBootApplication
9-
@EnableJpaRepositories(repositoryBaseClass = BaseJpaRepositoryImpl.class)
107
public class AppointmentBookingAppApplication {
118

129
public static void main(String[] args) {
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package com.capgemini.training.appointmentbooking.dataaccess.config;
2+
3+
import com.capgemini.training.appointmentbooking.dataaccess.repository.impl.BaseJpaRepositoryImpl;
4+
import org.springframework.context.annotation.Configuration;
5+
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
6+
7+
@Configuration
8+
@EnableJpaRepositories(
9+
repositoryBaseClass = BaseJpaRepositoryImpl.class,
10+
basePackages = "com.capgemini.training.appointmentbooking.dataaccess.repository")
11+
public class DataaccessConfiguration {}

src/main/java/com/capgemini/training/appointmentbooking/dataaccess/repository/AppointmentRepository.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@ SELECT CASE WHEN COUNT(a) > 0 THEN TRUE ELSE FALSE END
7777
JOIN a.treatment t
7878
WHERE t.specialist.id = :specialistId
7979
AND a.dateTime = :date
80+
AND a.status <> com.capgemini.training.appointmentbooking.common.datatype.AppointmentStatus.CANCELLED
8081
""")
8182
boolean hasConflictingAppointmentBySpecialistIdAndDateTime(@Param("specialistId") Long specialistId, @Param("date") Instant date);
8283

src/main/java/com/capgemini/training/appointmentbooking/dataaccess/repository/BaseJpaRepository.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
package com.capgemini.training.appointmentbooking.dataaccess.repository;
22

33
import jakarta.persistence.EntityManager;
4-
import org.springframework.data.jpa.repository.support.JpaRepositoryImplementation;
4+
import org.springframework.data.jpa.repository.JpaRepository;
55
import org.springframework.data.repository.NoRepositoryBean;
66

77
@NoRepositoryBean
8-
public interface BaseJpaRepository<T, ID> extends JpaRepositoryImplementation<T, ID> {
8+
public interface BaseJpaRepository<T, ID> extends JpaRepository<T, ID> {
99

1010
EntityManager getEntityManager();
1111

src/main/java/com/capgemini/training/appointmentbooking/dataaccess/repository/TreatmentRepository.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
@Repository
1515
public interface TreatmentRepository extends BaseJpaRepository<TreatmentEntity, Long> {
1616

17-
List<TreatmentEntity> findAllByName(String name);
17+
List<TreatmentEntity> findAllByNameStartingWithIgnoringCase(String name);
1818

1919
List<TreatmentEntity> findByNameNamedQuery(String name);
2020

src/main/java/com/capgemini/training/appointmentbooking/dataaccess/repository/UserRepository.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515

1616
@Repository
1717
public interface UserRepository extends BaseJpaRepository<UserEntity, Long> {
18-
1918
default List<UserEntity> findByCriteria(UserCriteria criteria) {
2019
Objects.requireNonNull(criteria, "criteria must not be null");
2120

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

43+
4444
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package com.capgemini.training.appointmentbooking.common;
2+
3+
import com.capgemini.training.appointmentbooking.dataaccess.config.DataaccessConfiguration;
4+
import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
5+
import org.springframework.context.annotation.Import;
6+
import org.springframework.transaction.annotation.Transactional;
7+
8+
@DataJpaTest
9+
@Import(DataaccessConfiguration.class)
10+
public class BaseDataJpaTest extends BaseTest{
11+
}

src/test/java/com/capgemini/training/appointmentbooking/dataaccess/entity/EntitySmokeTestIT.java renamed to src/test/java/com/capgemini/training/appointmentbooking/dataaccess/entity/EntitySmokeIT.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,10 @@
1010

1111
import jakarta.persistence.EntityManager;
1212
import jakarta.persistence.PersistenceContext;
13+
import org.springframework.data.repository.config.BootstrapMode;
1314

14-
@DataJpaTest
15-
public class EntitySmokeTestIT {
15+
@DataJpaTest(bootstrapMode = BootstrapMode.LAZY)
16+
public class EntitySmokeIT {
1617

1718
@PersistenceContext
1819
private EntityManager em;

src/test/java/com/capgemini/training/appointmentbooking/dataaccess/repository/AppointmentRepositoryTestIT.java renamed to src/test/java/com/capgemini/training/appointmentbooking/dataaccess/repository/AppointmentRepositoryIT.java

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package com.capgemini.training.appointmentbooking.dataaccess.repository;
22

3-
import com.capgemini.training.appointmentbooking.common.BaseTest;
3+
import com.capgemini.training.appointmentbooking.common.BaseDataJpaTest;
44
import com.capgemini.training.appointmentbooking.common.datatype.AppointmentStatus;
55
import com.capgemini.training.appointmentbooking.dataaccess.entity.AppointmentEntity;
66
import com.capgemini.training.appointmentbooking.dataaccess.entity.ClientEntity;
@@ -9,17 +9,14 @@
99
import com.capgemini.training.appointmentbooking.dataaccess.repository.criteria.AppointmentCriteria;
1010
import jakarta.inject.Inject;
1111
import org.junit.jupiter.api.Test;
12-
import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
13-
import org.springframework.transaction.annotation.Transactional;
1412

1513
import java.time.Instant;
1614
import java.util.List;
1715
import java.util.Optional;
1816

1917

20-
@Transactional
21-
@DataJpaTest
22-
public class AppointmentRepositoryTestIT extends BaseTest {
18+
19+
public class AppointmentRepositoryIT extends BaseDataJpaTest {
2320

2421
@Inject
2522
private AppointmentRepository appointmentRepository;
@@ -196,5 +193,4 @@ void shouldFindConflictedAppointment() {
196193
// then
197194
assertThat(conflict).isTrue();
198195
}
199-
200196
}

src/test/java/com/capgemini/training/appointmentbooking/dataaccess/repository/ClientRepositoryTestIT.java renamed to src/test/java/com/capgemini/training/appointmentbooking/dataaccess/repository/ClientRepositoryIT.java

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,15 @@
11
package com.capgemini.training.appointmentbooking.dataaccess.repository;
22

3-
import com.capgemini.training.appointmentbooking.common.BaseTest;
3+
import com.capgemini.training.appointmentbooking.common.BaseDataJpaTest;
44
import com.capgemini.training.appointmentbooking.dataaccess.entity.ClientEntity;
55
import jakarta.inject.Inject;
66
import org.junit.jupiter.api.Test;
7-
import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
8-
import org.springframework.transaction.annotation.Transactional;
97

108
import java.util.List;
119

1210

13-
@Transactional
14-
@DataJpaTest
15-
public class ClientRepositoryTestIT extends BaseTest {
11+
12+
public class ClientRepositoryIT extends BaseDataJpaTest {
1613

1714
@Inject
1815
private ClientRepository clientRepository;
@@ -35,5 +32,4 @@ void shouldFindClientsByName() {
3532
assertThat(client.getUser().getLastname()).isEqualTo(lastName).as("Expected client to have the specified last name");
3633
});
3734
}
38-
3935
}

0 commit comments

Comments
 (0)