Skip to content

Commit

Permalink
Fix unit test issue
Browse files Browse the repository at this point in the history
  • Loading branch information
MilkBiscuit committed Apr 18, 2021
1 parent 52967fa commit 7df38b2
Show file tree
Hide file tree
Showing 4 changed files with 61 additions and 7 deletions.
15 changes: 10 additions & 5 deletions src/com/cheng/rostergenerator/RosterProducer.java
Original file line number Diff line number Diff line change
Expand Up @@ -187,7 +187,7 @@ public static Map<String, String> generateOneMeeting(List<Member> speakers, List
ttEvaluatorNames.add(ttEvaluator1.get(ttEvaluator1.size() - 1));
}
var ttEvaluator2 = roleToNames.get(TextConstants.TT_EVALUATOR_2);
if (!ttEvaluator2.isEmpty()) {
if (ttEvaluator2 != null && !ttEvaluator2.isEmpty()) {
ttEvaluatorNames.add(ttEvaluator2.get(ttEvaluator2.size() - 1));
}
optAnyOne = totalMembers.stream().filter(
Expand Down Expand Up @@ -230,11 +230,8 @@ public static String[][] generateRosterTableData() throws RosterException {
data[i][0] = rolesPerMeeting.get(i);
}

setupRoleToNames();
// Fill the rest of the table, value of meeting roles
roleToNames.clear();
for (String role : rolesPerMeeting) {
roleToNames.put(role, new ArrayList<String>());
}
for (int j = 1; j <= sNumOfMeetings; j++) {
// Randomise the order
Collections.shuffle(allMembers);
Expand All @@ -261,6 +258,14 @@ public static String[][] generateRosterTableData() throws RosterException {
return data;
}

public static void setupRoleToNames() {
var rolesPerMeeting = MeetingRoleHelper.rolesPerMeeting();
roleToNames.clear();
for (String role : rolesPerMeeting) {
roleToNames.put(role, new ArrayList<String>());
}
}

private static float numOfSpeechesPerMeetingString() {
var reserveForNew = PreferenceHelper.reserveForNewMember();
var hasFourSpeeches = PreferenceHelper.hasFourSpeeches();
Expand Down
8 changes: 8 additions & 0 deletions src/com/cheng/rostergenerator/helper/MeetingRoleHelper.java
Original file line number Diff line number Diff line change
Expand Up @@ -69,4 +69,12 @@ public static boolean isTTEvaluator(String role) {
return TextConstants.TT_EVALUATOR_1 == role || TextConstants.TT_EVALUATOR_2 == role;
}

public static boolean isSpeechEvaluator(String role) {
return TextConstants.EVALUATOR_1 == role
|| TextConstants.EVALUATOR_2 == role
|| TextConstants.EVALUATOR_3 == role
|| TextConstants.EVALUATOR_4 == role
|| TextConstants.EVALUATOR_5 == role;
}

}
5 changes: 3 additions & 2 deletions src/test/com/cheng/rostergenerator/RosterProducerTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -108,9 +108,10 @@ void testGenerateOneMeeting() {
var allMembers = new ArrayList<>(members);
allMembers.addAll(members);
allMembers.addAll(members);
var cMembers = members.stream().filter(m -> m.name.startsWith("A")).collect(Collectors.toList());
var speakers = members.stream().filter(m -> m.name.startsWith("A")).collect(Collectors.toList());

var result = RosterProducer.generateOneMeeting(cMembers, allMembers);
RosterProducer.setupRoleToNames();
var result = RosterProducer.generateOneMeeting(speakers, allMembers);
var nameCollection = result.values();
var nameSet = new HashSet<>(nameCollection);
// Should NEVER have one name appear twice or even more
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -68,4 +68,44 @@ void testRolesPerMeeting() {
assertFalse(result.contains("Listening Post"));
}

@Test
void testIsTTEvaluator() {
var result = MeetingRoleHelper.isTTEvaluator(null);
assertFalse(result);
result = MeetingRoleHelper.isTTEvaluator("");
assertFalse(result);
result = MeetingRoleHelper.isTTEvaluator("apple");
assertFalse(result);
result = MeetingRoleHelper.isTTEvaluator("Chairperson");
assertFalse(result);
result = MeetingRoleHelper.isTTEvaluator("Guest Hospitality");
assertFalse(result);
result = MeetingRoleHelper.isTTEvaluator("Table Topic Evaluator 1");
assertTrue(result);
result = MeetingRoleHelper.isTTEvaluator("Table Topic Evaluator 2");
assertTrue(result);
}

@Test
void testIsSpeechEvaluator() {
var result = MeetingRoleHelper.isSpeechEvaluator(null);
assertFalse(result);
result = MeetingRoleHelper.isSpeechEvaluator("");
assertFalse(result);
result = MeetingRoleHelper.isSpeechEvaluator("apple");
assertFalse(result);
result = MeetingRoleHelper.isSpeechEvaluator("Chairperson");
assertFalse(result);
result = MeetingRoleHelper.isSpeechEvaluator("Guest Hospitality");
assertFalse(result);
result = MeetingRoleHelper.isSpeechEvaluator("Table Topic Evaluator 1");
assertFalse(result);
result = MeetingRoleHelper.isSpeechEvaluator("Table Topic Evaluator 2");
assertFalse(result);
result = MeetingRoleHelper.isSpeechEvaluator("Evaluator 2");
assertTrue(result);
result = MeetingRoleHelper.isSpeechEvaluator("Evaluator 5");
assertTrue(result);
}

}

0 comments on commit 7df38b2

Please sign in to comment.