Skip to content

Commit f222695

Browse files
committed
Added unit tests
1 parent a6caa79 commit f222695

File tree

12 files changed

+147
-32
lines changed

12 files changed

+147
-32
lines changed

SirmaAssignment/src/main/java/dev/pradeep/SirmaAssignment/Advisor/ControllerAdvisor.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import dev.pradeep.SirmaAssignment.Dto.ErrorResponseDto;
44
import dev.pradeep.SirmaAssignment.Exceptions.ProjectNotFoundException;
5+
import jakarta.validation.ConstraintViolationException;
56
import lombok.extern.slf4j.Slf4j;
67
import org.springframework.http.HttpStatus;
78
import org.springframework.http.ResponseEntity;
@@ -13,7 +14,12 @@
1314
@Slf4j
1415
public class ControllerAdvisor {
1516

16-
@ExceptionHandler(value = {IllegalArgumentException.class, MethodArgumentNotValidException.class})
17+
@ExceptionHandler(
18+
value = {
19+
ConstraintViolationException.class,
20+
IllegalArgumentException.class,
21+
MethodArgumentNotValidException.class
22+
})
1723
public ResponseEntity<ErrorResponseDto> handleBadRequestException(Exception exception) {
1824
log.error("handleBadRequestException", exception);
1925
ErrorResponseDto errorResponseDto = new ErrorResponseDto();

SirmaAssignment/src/main/java/dev/pradeep/SirmaAssignment/Controllers/ProjectController.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import dev.pradeep.SirmaAssignment.Model.Project;
99
import dev.pradeep.SirmaAssignment.Services.ProjectService;
1010
import jakarta.validation.Valid;
11+
import java.util.List;
1112
import lombok.RequiredArgsConstructor;
1213
import org.springframework.web.bind.annotation.*;
1314

@@ -39,4 +40,9 @@ public ProjectCreatedResponse createProject(
3940
public Project readProject(@PathVariable Long projectId) {
4041
return projectService.findProject(projectId);
4142
}
43+
44+
@GetMapping("/find-all-projects")
45+
public List<Project> findAllProjects() {
46+
return projectService.findAllProjects();
47+
}
4248
}

SirmaAssignment/src/main/java/dev/pradeep/SirmaAssignment/Dto/ErrorResponseDto.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,12 @@
33
public class ErrorResponseDto {
44
private String message;
55

6+
public ErrorResponseDto(final String message) {
7+
this.message = message;
8+
}
9+
10+
public ErrorResponseDto() {}
11+
612
public String getMessage() {
713
return this.message;
814
}
@@ -44,10 +50,4 @@ public int hashCode() {
4450
public String toString() {
4551
return "ErrorResponseDto(message=" + this.getMessage() + ")";
4652
}
47-
48-
public ErrorResponseDto(final String message) {
49-
this.message = message;
50-
}
51-
52-
public ErrorResponseDto() {}
5353
}

SirmaAssignment/src/main/java/dev/pradeep/SirmaAssignment/Dto/Request/CreateProjectDto.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,11 @@
44
import jakarta.validation.constraints.*;
55
import java.time.LocalDate;
66
import java.util.List;
7+
import lombok.Builder;
78
import lombok.Data;
89

910
@Data
11+
@Builder
1012
public class CreateProjectDto {
1113

1214
@NotBlank(message = "Name is required")

SirmaAssignment/src/main/java/dev/pradeep/SirmaAssignment/Dto/Request/UpdateProjectDto.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,11 @@
44
import jakarta.validation.constraints.NotNull;
55
import java.time.LocalDate;
66
import java.util.List;
7+
import lombok.Builder;
78
import lombok.Data;
89

910
@Data
11+
@Builder
1012
public class UpdateProjectDto {
1113
@NotNull(message = "Project id is required")
1214
private Long projectId;

SirmaAssignment/src/main/java/dev/pradeep/SirmaAssignment/Model/BaseEntity.java

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ public class BaseEntity implements Serializable {
1919
@Column(name = "updated_at")
2020
private LocalDateTime updatedAt;
2121

22+
public BaseEntity() {}
23+
2224
@PrePersist
2325
void createDate() {
2426
if (this.createdAt == null) {
@@ -52,22 +54,22 @@ public Long getId() {
5254
return this.id;
5355
}
5456

55-
public LocalDateTime getCreatedAt() {
56-
return this.createdAt;
57-
}
58-
59-
public LocalDateTime getUpdatedAt() {
60-
return this.updatedAt;
61-
}
62-
6357
public void setId(final Long id) {
6458
this.id = id;
6559
}
6660

61+
public LocalDateTime getCreatedAt() {
62+
return this.createdAt;
63+
}
64+
6765
public void setCreatedAt(final LocalDateTime createdAt) {
6866
this.createdAt = createdAt;
6967
}
7068

69+
public LocalDateTime getUpdatedAt() {
70+
return this.updatedAt;
71+
}
72+
7173
public void setUpdatedAt(final LocalDateTime updatedAt) {
7274
this.updatedAt = updatedAt;
7375
}
@@ -82,6 +84,4 @@ public String toString() {
8284
+ this.getUpdatedAt()
8385
+ ")";
8486
}
85-
86-
public BaseEntity() {}
8787
}

SirmaAssignment/src/main/java/dev/pradeep/SirmaAssignment/Model/Project.java

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,24 +7,22 @@
77
import jakarta.persistence.Table;
88
import java.time.LocalDate;
99
import java.util.List;
10-
import lombok.Getter;
11-
import lombok.RequiredArgsConstructor;
12-
import lombok.Setter;
13-
import lombok.ToString;
10+
import lombok.*;
1411
import org.hibernate.annotations.JdbcTypeCode;
1512
import org.hibernate.type.SqlTypes;
1613

17-
/*
18-
I'd defined in base entity where other metadata is also defined
19-
like created at and updated at
20-
*/
2114
@Getter
2215
@Setter
2316
@ToString
2417
@RequiredArgsConstructor
2518
@Entity
2619
@Table(name = "projects")
2720
public class Project extends BaseEntity {
21+
/*
22+
I'd defined in base entity where other metadata is also defined
23+
like created at and updated at
24+
id autoincrement
25+
*/
2826
private String name;
2927
private String description;
3028
private LocalDate startDate;

SirmaAssignment/src/main/java/dev/pradeep/SirmaAssignment/Repository/ProjectRepository.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import dev.pradeep.SirmaAssignment.Dao.ProjectDao;
44
import dev.pradeep.SirmaAssignment.Exceptions.ProjectNotFoundException;
55
import dev.pradeep.SirmaAssignment.Model.Project;
6+
import java.util.List;
67
import lombok.RequiredArgsConstructor;
78
import lombok.extern.slf4j.Slf4j;
89
import org.springframework.stereotype.Repository;
@@ -24,4 +25,8 @@ public Project findById(Long projectId) {
2425
public void deleteById(Long projectId) {
2526
projectDao.deleteById(projectId);
2627
}
28+
29+
public List<Project> findAll() {
30+
return (List<Project>) projectDao.findAll();
31+
}
2732
}

SirmaAssignment/src/main/java/dev/pradeep/SirmaAssignment/Services/ProjectService.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import dev.pradeep.SirmaAssignment.Mapper.ProjectMapper;
99
import dev.pradeep.SirmaAssignment.Model.Project;
1010
import dev.pradeep.SirmaAssignment.Repository.ProjectRepository;
11+
import java.util.List;
1112
import lombok.RequiredArgsConstructor;
1213
import lombok.extern.slf4j.Slf4j;
1314
import org.springframework.stereotype.Service;
@@ -42,4 +43,8 @@ public ProjectDeletedResponse deleteProject(Long projectId) {
4243
public Project findProject(Long projectId) {
4344
return projectRepository.findById(projectId);
4445
}
46+
47+
public List<Project> findAllProjects() {
48+
return projectRepository.findAll();
49+
}
4550
}
Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,11 @@
1-
21
spring.datasource.url=jdbc:h2:mem:sirma
32
spring.datasource.driverClassName=org.h2.Driver
43
spring.datasource.username=root
54
spring.datasource.password=root
65
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
7-
86
# Hibernate properties
97
spring.jpa.hibernate.ddl-auto=update
108
spring.jpa.show-sql=true
119
logging.level.org.hibernate.sql=DEBUG
1210
logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE
13-
1411
spring.h2.console.enabled=true

0 commit comments

Comments
 (0)