From dd0c9b3d978dafcb39c8ff6a180cd14d9e4aaefa Mon Sep 17 00:00:00 2001 From: emmanuelTwumasi Date: Sat, 1 Mar 2025 16:18:08 +0000 Subject: [PATCH] [Feat] Implement endpoint for Updating a job --- .../jobs/service/JobListingServiceTest.java | 56 +++++++++++++++++++ 1 file changed, 56 insertions(+) diff --git a/src/test/java/hng_java_boilerplate/jobs/service/JobListingServiceTest.java b/src/test/java/hng_java_boilerplate/jobs/service/JobListingServiceTest.java index 3dae3b95a..a89d522f2 100644 --- a/src/test/java/hng_java_boilerplate/jobs/service/JobListingServiceTest.java +++ b/src/test/java/hng_java_boilerplate/jobs/service/JobListingServiceTest.java @@ -1,5 +1,6 @@ package hng_java_boilerplate.jobs.service; +import hng_java_boilerplate.exception.NotFoundException; import hng_java_boilerplate.jobs.entity.JobListing; import hng_java_boilerplate.jobs.repository.JobListingRepository; import org.junit.jupiter.api.BeforeEach; @@ -63,4 +64,59 @@ void createJobListing_shouldSaveAndReturnJobListing() { verify(jobListingRepository, times(1)).save(any(JobListing.class)); } + + @Test + void testGetJobListingById_ValidId(){ + JobListing jobListing = new JobListing(); + jobListing.setId(1L); + jobListing.setTitle("Software Engineer"); + jobListing.setDescription("Develop amazing software"); + jobListing.setLocation("Remote"); + jobListing.setSalary("Competitive"); + jobListing.setJobType("Full-time"); + jobListing.setCompanyName("Tech Corp"); + jobListing.setCreatedAt(LocalDateTime.now()); + + when(jobListingRepository.findById(1L)).thenReturn(java.util.Optional.of(jobListing)); + + JobListing result = jobListingService.getJobListingById(1L); + + assertNotNull(result); + assertEquals(jobListing.getId(), result.getId()); + assertEquals(jobListing.getTitle(), result.getTitle()); + assertEquals(jobListing.getDescription(), result.getDescription()); + assertEquals(jobListing.getLocation(), result.getLocation()); + assertEquals(jobListing.getSalary(), result.getSalary()); + assertEquals(jobListing.getJobType(), result.getJobType()); + assertEquals(jobListing.getCompanyName(), result.getCompanyName()); + assertNotNull(result.getCreatedAt()); + + verify(jobListingRepository, times(1)).findById(1L); + } + @Test + void testGetJobListingById_InvalidId(){ + when(jobListingRepository.findById(1L)).thenReturn(java.util.Optional.empty()); + + assertThrows(NotFoundException.class, () -> jobListingService.getJobListingById(1L), "Job not found with id: 1"); + + verify(jobListingRepository, times(1)).findById(1L); + } + @Test + void testUpdateJob_InvalidData(){ + JobListing jobListing = new JobListing(); + jobListing.setId(1L); + jobListing.setTitle("Software Engineer"); + jobListing.setDescription("Develop amazing software"); + jobListing.setLocation("Remote"); + jobListing.setSalary("Competitive"); + jobListing.setJobType("Full-time"); + jobListing.setCompanyName("Tech Corp"); + jobListing.setCreatedAt(LocalDateTime.now()); + + when(jobListingRepository.findById(1L)).thenReturn(java.util.Optional.empty()); + + assertThrows(NotFoundException.class, () -> jobListingService.updateJobListing(1L, jobListing), "Job not found with id: 1"); + + verify(jobListingRepository, times(1)).findById(1L); + } }