Skip to content

Commit a6fcadb

Browse files
committed
Removed mockito from MemberProfileReportServicesImplTest.
1 parent e1524da commit a6fcadb

File tree

1 file changed

+47
-98
lines changed

1 file changed

+47
-98
lines changed

server/src/test/java/com/objectcomputing/checkins/services/memberprofile/csvreport/MemberProfileReportServicesImplTest.java

Lines changed: 47 additions & 98 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
11
package com.objectcomputing.checkins.services.memberprofile.csvreport;
22

33
import com.objectcomputing.checkins.services.TestContainersSuite;
4+
import com.objectcomputing.checkins.services.fixture.MemberProfileFixture;
5+
import com.objectcomputing.checkins.services.memberprofile.MemberProfile;
6+
import com.objectcomputing.checkins.services.memberprofile.MemberProfileServices;
47
import org.apache.commons.csv.CSVFormat;
58
import org.apache.commons.csv.CSVParser;
69
import org.apache.commons.csv.CSVRecord;
710
import org.junit.jupiter.api.AfterAll;
811
import org.junit.jupiter.api.BeforeAll;
912
import org.junit.jupiter.api.BeforeEach;
1013
import org.junit.jupiter.api.Test;
11-
import org.junit.jupiter.api.condition.DisabledInNativeImage;
12-
import org.mockito.InjectMocks;
13-
import org.mockito.Mock;
14-
import org.mockito.Mockito;
15-
import org.mockito.MockitoAnnotations;
14+
15+
import jakarta.inject.Inject;
1616

1717
import java.io.File;
1818
import java.io.FileReader;
@@ -25,46 +25,20 @@
2525
import static org.junit.jupiter.api.Assertions.assertEquals;
2626
import static org.junit.jupiter.api.Assertions.assertNotNull;
2727
import static org.junit.jupiter.api.Assertions.assertThrows;
28-
import static org.mockito.Mockito.when;
29-
30-
// Disabled in nativeTest, as we get an exception from Mockito
31-
// => java.lang.NoClassDefFoundError: Could not initialize class org.mockito.internal.configuration.plugins.Plugins
32-
@DisabledInNativeImage
33-
class MemberProfileReportServicesImplTest extends TestContainersSuite {
3428

35-
@Mock
36-
private MemberProfileReportRepository memberProfileReportRepository;
29+
class MemberProfileReportServicesImplTest extends TestContainersSuite
30+
implements MemberProfileFixture {
31+
@Inject
32+
private MemberProfileServices memberProfileServices;
3733

38-
@Mock
39-
private MemberProfileFileProvider memberProfileFileProvider;
40-
41-
@InjectMocks
34+
@Inject
4235
private MemberProfileReportServicesImpl memberProfileReportServices;
4336

44-
private AutoCloseable mockFinalizer;
45-
46-
@BeforeAll
47-
void initMocks() {
48-
mockFinalizer = MockitoAnnotations.openMocks(this);
49-
}
50-
51-
@BeforeEach
52-
void resetMocks() {
53-
Mockito.reset(memberProfileReportRepository);
54-
}
55-
56-
@AfterAll
57-
void close() throws Exception {
58-
mockFinalizer.close();
59-
}
60-
6137
@Test
6238
void testGenerateFileWithAllMemberProfiles() throws IOException {
6339
List<MemberProfileRecord> expectedRecords = createSampleRecords();
64-
when(memberProfileReportRepository.findAll()).thenReturn(expectedRecords);
6540
File tmpFile = File.createTempFile("member",".csv");
6641
tmpFile.deleteOnExit();
67-
when(memberProfileFileProvider.provideFile()).thenReturn(tmpFile);
6842

6943
// Generate a file with all members
7044
File file = memberProfileReportServices.generateFile(null);
@@ -85,12 +59,9 @@ void testGenerateFileWithAllMemberProfiles() throws IOException {
8559
void testGenerateFileWithSelectedMemberProfiles() throws IOException {
8660
List<MemberProfileRecord> allRecords = createSampleRecords();
8761
MemberProfileRecord expectedRecord = allRecords.get(1);
88-
when(memberProfileReportRepository
89-
.findAllByMemberIds(List.of(expectedRecord.getId().toString())))
90-
.thenReturn(List.of(expectedRecord));
9162
File tmpFile = File.createTempFile("member",".csv");
9263
tmpFile.deleteOnExit();
93-
when(memberProfileFileProvider.provideFile()).thenReturn(tmpFile);
64+
9465
// Generate a file with selected members
9566
MemberProfileReportQueryDTO dto = new MemberProfileReportQueryDTO();
9667
dto.setMemberIds(List.of(expectedRecord.getId()));
@@ -104,26 +75,6 @@ void testGenerateFileWithSelectedMemberProfiles() throws IOException {
10475
assertRecordEquals(expectedRecord, csvRecord1);
10576
}
10677

107-
@Test
108-
void testGenerateFileNotGenerated() throws IOException {
109-
List<MemberProfileRecord> allRecords = createSampleRecords();
110-
MemberProfileRecord expectedRecord = allRecords.get(1);
111-
when(memberProfileReportRepository
112-
.findAllByMemberIds(List.of(expectedRecord.getId().toString())))
113-
.thenReturn(List.of(expectedRecord));
114-
115-
when(memberProfileFileProvider.provideFile()).thenThrow(new RuntimeException());
116-
// Generate a file with selected members
117-
MemberProfileReportQueryDTO dto = new MemberProfileReportQueryDTO();
118-
dto.setMemberIds(List.of(expectedRecord.getId()));
119-
120-
assertThrows(RuntimeException.class, () -> {
121-
memberProfileReportServices.generateFile(dto);
122-
});
123-
}
124-
125-
126-
12778
private static void assertRecordEquals(MemberProfileRecord record, CSVRecord csvRecord) {
12879
assertEquals(record.getFirstName(), csvRecord.get("First Name"));
12980
assertEquals(record.getLastName(), csvRecord.get("Last Name"));
@@ -146,45 +97,43 @@ static List<CSVRecord> parseRecordsFromFile(File file) throws IOException {
14697
return parser.getRecords();
14798
}
14899

149-
private static List<MemberProfileRecord> createSampleRecords() {
100+
MemberProfileRecord from(MemberProfile profile) {
150101
MemberProfileRecord record1 = new MemberProfileRecord();
151-
record1.setId(UUID.randomUUID());
152-
record1.setFirstName("John");
153-
record1.setLastName("Doe");
154-
record1.setTitle("Software Engineer");
155-
record1.setLocation("St. Louis");
156-
record1.setWorkEmail("[email protected]");
157-
record1.setStartDate(LocalDate.of(2024, 1, 1));
158-
record1.setPdlName("Jane Miller");
159-
record1.setPdlEmail("[email protected]");
160-
record1.setSupervisorName("Tom Smith");
161-
record1.setSupervisorEmail("[email protected]");
162-
163-
MemberProfileRecord record2 = new MemberProfileRecord();
164-
record2.setId(UUID.randomUUID());
165-
record2.setFirstName("Jane");
166-
record2.setLastName("Miller");
167-
record2.setTitle("Principal Software Engineer");
168-
record2.setLocation("St. Louis");
169-
record2.setWorkEmail("[email protected]");
170-
record2.setStartDate(LocalDate.of(2023, 1, 1));
171-
record2.setPdlName("Eve Williams");
172-
record2.setPdlEmail("[email protected]");
173-
record2.setSupervisorName("Tom Smith");
174-
record2.setSupervisorEmail("[email protected]");
175-
176-
MemberProfileRecord record3 = new MemberProfileRecord();
177-
record3.setId(UUID.randomUUID());
178-
record3.setFirstName("Tom");
179-
record3.setLastName("Smith");
180-
record3.setTitle("Manager, HR, and Head of Sales");
181-
record3.setLocation("New York City, New York");
182-
record3.setWorkEmail("[email protected]");
183-
record3.setStartDate(LocalDate.of(2022, 1, 1));
184-
record3.setPdlName(null);
185-
record3.setPdlEmail(null);
186-
record3.setSupervisorName(null);
187-
record3.setSupervisorEmail(null);
102+
record1.setId(profile.getId());
103+
record1.setFirstName(profile.getFirstName());
104+
record1.setLastName(profile.getLastName());
105+
record1.setTitle(profile.getTitle());
106+
record1.setLocation(profile.getLocation());
107+
record1.setWorkEmail(profile.getWorkEmail());
108+
record1.setStartDate(profile.getStartDate());
109+
UUID pdlId = profile.getPdlId();
110+
if (pdlId != null) {
111+
MemberProfile pdl = memberProfileServices.getById(pdlId);
112+
if (pdl != null) {
113+
record1.setPdlName(pdl.getFirstName() + " " + pdl.getLastName());
114+
record1.setPdlEmail(pdl.getWorkEmail());
115+
}
116+
}
117+
UUID supervisorId = profile.getSupervisorid();
118+
if (supervisorId != null) {
119+
MemberProfile supervisor =
120+
memberProfileServices.getById(supervisorId);
121+
if (supervisor != null) {
122+
record1.setSupervisorName(supervisor.getFirstName() + " " +
123+
supervisor.getLastName());
124+
record1.setSupervisorEmail(supervisor.getWorkEmail());
125+
}
126+
}
127+
return record1;
128+
}
129+
130+
private List<MemberProfileRecord> createSampleRecords() {
131+
// The createADefaultMemberProfileForPdl() method actually sets both
132+
// the PDL and Supervisor to the id of the member profile passed in.
133+
MemberProfile pdl = createADefaultMemberProfile();
134+
MemberProfileRecord record1 = from(pdl);
135+
MemberProfileRecord record2 = from(createADefaultMemberProfileForPdl(pdl));
136+
MemberProfileRecord record3 = from(createAThirdDefaultMemberProfile());
188137

189138
return List.of(record1, record2, record3);
190139
}

0 commit comments

Comments
 (0)