From 7df38b2419143edd76327799af787d6f82ebe3e3 Mon Sep 17 00:00:00 2001 From: Chandler Cheng Date: Sun, 18 Apr 2021 21:01:34 +1200 Subject: [PATCH] Fix unit test issue --- .../cheng/rostergenerator/RosterProducer.java | 15 ++++--- .../helper/MeetingRoleHelper.java | 8 ++++ .../rostergenerator/RosterProducerTest.java | 5 ++- .../helper/MeetingRoleHelperTest.java | 40 +++++++++++++++++++ 4 files changed, 61 insertions(+), 7 deletions(-) diff --git a/src/com/cheng/rostergenerator/RosterProducer.java b/src/com/cheng/rostergenerator/RosterProducer.java index ec78216..c1d2a14 100644 --- a/src/com/cheng/rostergenerator/RosterProducer.java +++ b/src/com/cheng/rostergenerator/RosterProducer.java @@ -187,7 +187,7 @@ public static Map generateOneMeeting(List 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( @@ -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()); - } for (int j = 1; j <= sNumOfMeetings; j++) { // Randomise the order Collections.shuffle(allMembers); @@ -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()); + } + } + private static float numOfSpeechesPerMeetingString() { var reserveForNew = PreferenceHelper.reserveForNewMember(); var hasFourSpeeches = PreferenceHelper.hasFourSpeeches(); diff --git a/src/com/cheng/rostergenerator/helper/MeetingRoleHelper.java b/src/com/cheng/rostergenerator/helper/MeetingRoleHelper.java index bbc1bcf..2314b7a 100644 --- a/src/com/cheng/rostergenerator/helper/MeetingRoleHelper.java +++ b/src/com/cheng/rostergenerator/helper/MeetingRoleHelper.java @@ -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; + } + } diff --git a/src/test/com/cheng/rostergenerator/RosterProducerTest.java b/src/test/com/cheng/rostergenerator/RosterProducerTest.java index a8b25cf..16cc468 100644 --- a/src/test/com/cheng/rostergenerator/RosterProducerTest.java +++ b/src/test/com/cheng/rostergenerator/RosterProducerTest.java @@ -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 diff --git a/src/test/com/cheng/rostergenerator/helper/MeetingRoleHelperTest.java b/src/test/com/cheng/rostergenerator/helper/MeetingRoleHelperTest.java index 8fddf69..f7c5e3e 100644 --- a/src/test/com/cheng/rostergenerator/helper/MeetingRoleHelperTest.java +++ b/src/test/com/cheng/rostergenerator/helper/MeetingRoleHelperTest.java @@ -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); + } + }