Improved missing command message (#3415). Improved code and typography.
This commit is contained in:
parent
d02e12e1da
commit
90c739ed07
@ -1,5 +1,5 @@
|
|||||||
/**
|
/**
|
||||||
* Copyright (C) 2018 Christian Pierre MOMON <cmomon@april.org>
|
* Copyright (C) 2018-2019 Christian Pierre MOMON <cmomon@april.org>
|
||||||
*
|
*
|
||||||
* This file is part of (April) Hebdobot.
|
* This file is part of (April) Hebdobot.
|
||||||
*
|
*
|
||||||
@ -56,7 +56,7 @@ public class CurrentHook extends Hook
|
|||||||
Topic current = bot.getReview().getCurrentTopic();
|
Topic current = bot.getReview().getCurrentTopic();
|
||||||
if (current == null)
|
if (current == null)
|
||||||
{
|
{
|
||||||
bot.sendMessage("% Pas de sujet en cours");
|
bot.sendMessage("% Pas de sujet en cours.");
|
||||||
}
|
}
|
||||||
else if (current instanceof IndividualTopic)
|
else if (current instanceof IndividualTopic)
|
||||||
{
|
{
|
||||||
|
@ -163,7 +163,7 @@ public class FinishReviewHook extends Hook
|
|||||||
bot.sendMessage("% Durée de la revue : " + bot.getReview().getDurationInMinutes() + " minutes");
|
bot.sendMessage("% Durée de la revue : " + bot.getReview().getDurationInMinutes() + " minutes");
|
||||||
bot.sendMessage("% Nombre de personnes participantes : " + bot.getReview().getParticipants().size());
|
bot.sendMessage("% Nombre de personnes participantes : " + bot.getReview().getParticipants().size());
|
||||||
|
|
||||||
bot.sendMessage("% " + ReviewStatsReporter.reportNewMaxUserCount(datas, bot.getReview().getParticipants().size()));
|
bot.sendMessage("% " + ReviewStatsReporter.reportNewUserCountRecord(datas));
|
||||||
bot.sendMessage(bot.getReview().getOwner(), ReviewStatsReporter.reportUserCount(datas, bot.getReview().getParticipants().size()));
|
bot.sendMessage(bot.getReview().getOwner(), ReviewStatsReporter.reportUserCount(datas, bot.getReview().getParticipants().size()));
|
||||||
bot.sendMessage(bot.getReview().getOwner(), ReviewStatsReporter.reportDuration(datas, bot.getReview().getDurationInMinutes()));
|
bot.sendMessage(bot.getReview().getOwner(), ReviewStatsReporter.reportDuration(datas, bot.getReview().getDurationInMinutes()));
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/**
|
/**
|
||||||
* Copyright (C) 2018 Christian Pierre MOMON <cmomon@april.org>
|
* Copyright (C) 2018-2019 Christian Pierre MOMON <cmomon@april.org>
|
||||||
*
|
*
|
||||||
* This file is part of (April) Hebdobot.
|
* This file is part of (April) Hebdobot.
|
||||||
*
|
*
|
||||||
@ -27,6 +27,8 @@ import org.april.hebdobot.bot.review.Topic;
|
|||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
import fr.devinsy.strings.StringSet;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The Class MissingHook.
|
* The Class MissingHook.
|
||||||
*/
|
*/
|
||||||
@ -57,17 +59,21 @@ public class MissingHook extends Hook
|
|||||||
Topic topic = bot.getReview().getCurrentTopic();
|
Topic topic = bot.getReview().getCurrentTopic();
|
||||||
if (topic == null)
|
if (topic == null)
|
||||||
{
|
{
|
||||||
bot.sendMessage("Aucun sujet traité");
|
bot.sendMessage("Pas sujet en cours.");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Collection<String> participants = bot.getReview().getParticipants();
|
StringSet participants = bot.getReview().getParticipants();
|
||||||
Collection<String> currentParticipants = topic.getParticipants();
|
if (participants.isEmpty())
|
||||||
|
{
|
||||||
|
participants.add(bot.getReview().getOwner());
|
||||||
|
}
|
||||||
|
StringSet currentParticipants = topic.getParticipants();
|
||||||
|
|
||||||
Collection<String> missing = CollectionUtils.subtract(participants, currentParticipants);
|
Collection<String> missing = CollectionUtils.subtract(participants, currentParticipants);
|
||||||
if (missing.isEmpty())
|
if (missing.isEmpty())
|
||||||
{
|
{
|
||||||
bot.sendMessage("Tout le monde a parlé \\o/");
|
bot.sendMessage("Tout le monde s'est exprimé sur le sujet courant \\o/");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/**
|
/**
|
||||||
* Copyright (C) 2018 Christian Pierre MOMON <cmomon@april.org>
|
* Copyright (C) 2018-2019 Christian Pierre MOMON <cmomon@april.org>
|
||||||
*
|
*
|
||||||
* This file is part of (April) Hebdobot.
|
* This file is part of (April) Hebdobot.
|
||||||
*
|
*
|
||||||
@ -46,7 +46,7 @@ public class StopReviewHook extends Hook
|
|||||||
// Stop.
|
// Stop.
|
||||||
if (bot.getReview() == null)
|
if (bot.getReview() == null)
|
||||||
{
|
{
|
||||||
bot.sendMessage(sender + ", aucune revue en cours, abandon impossible.");
|
bot.sendMessage(sender + ", pas de revue en cours, abandon impossible.");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/**
|
/**
|
||||||
* Copyright (C) 2017-2018 Christian Pierre MOMON <cmomon@april.org>
|
* Copyright (C) 2017-2019 Christian Pierre MOMON <cmomon@april.org>
|
||||||
* Copyright (C) 2011-2013 Nicolas Vinot <aeris@imirhil.fr>
|
* Copyright (C) 2011-2013 Nicolas Vinot <aeris@imirhil.fr>
|
||||||
*
|
*
|
||||||
* This file is part of (April) Hebdobot.
|
* This file is part of (April) Hebdobot.
|
||||||
@ -19,9 +19,9 @@
|
|||||||
*/
|
*/
|
||||||
package org.april.hebdobot.bot.review;
|
package org.april.hebdobot.bot.review;
|
||||||
|
|
||||||
import java.util.HashSet;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Set;
|
|
||||||
|
import fr.devinsy.strings.StringSet;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The Class CollectiveTopic.
|
* The Class CollectiveTopic.
|
||||||
@ -66,13 +66,15 @@ public class CollectiveTopic extends Topic
|
|||||||
* @see org.april.hebdobot.review.Topic#getParticipants()
|
* @see org.april.hebdobot.review.Topic#getParticipants()
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public Set<String> getParticipants()
|
public StringSet getParticipants()
|
||||||
{
|
{
|
||||||
final Set<String> participants = new HashSet<>();
|
StringSet result = new StringSet();
|
||||||
for (final Message message : this.messages)
|
for (final Message message : this.messages)
|
||||||
{
|
{
|
||||||
participants.add(message.getAuthor());
|
result.add(message.getAuthor());
|
||||||
}
|
}
|
||||||
return participants;
|
|
||||||
|
//
|
||||||
|
return result;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/**
|
/**
|
||||||
* Copyright (C) 2017-2018 Christian Pierre MOMON <cmomon@april.org>
|
* Copyright (C) 2017-2019 Christian Pierre MOMON <cmomon@april.org>
|
||||||
* Copyright (C) 2011-2013 Nicolas Vinot <aeris@imirhil.fr>
|
* Copyright (C) 2011-2013 Nicolas Vinot <aeris@imirhil.fr>
|
||||||
*
|
*
|
||||||
* This file is part of (April) Hebdobot.
|
* This file is part of (April) Hebdobot.
|
||||||
@ -21,7 +21,8 @@ package org.april.hebdobot.bot.review;
|
|||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
|
||||||
|
import fr.devinsy.strings.StringSet;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The Class IndividualTopic.
|
* The Class IndividualTopic.
|
||||||
@ -78,11 +79,11 @@ public class IndividualTopic extends Topic
|
|||||||
* @see org.april.hebdobot.review.Topic#getParticipants()
|
* @see org.april.hebdobot.review.Topic#getParticipants()
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public Set<String> getParticipants()
|
public StringSet getParticipants()
|
||||||
{
|
{
|
||||||
Set<String> result;
|
StringSet result;
|
||||||
|
|
||||||
result = this.messages.keySet();
|
result = new StringSet(this.messages.keySet());
|
||||||
|
|
||||||
//
|
//
|
||||||
return result;
|
return result;
|
||||||
|
@ -22,8 +22,6 @@ package org.april.hebdobot.bot.review;
|
|||||||
import java.time.Duration;
|
import java.time.Duration;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.time.format.DateTimeFormatter;
|
import java.time.format.DateTimeFormatter;
|
||||||
import java.util.Collection;
|
|
||||||
import java.util.HashSet;
|
|
||||||
|
|
||||||
import org.april.hebdobot.bot.UserAliases;
|
import org.april.hebdobot.bot.UserAliases;
|
||||||
|
|
||||||
@ -265,11 +263,11 @@ public class Review
|
|||||||
*
|
*
|
||||||
* @return the participants
|
* @return the participants
|
||||||
*/
|
*/
|
||||||
public Collection<String> getParticipants()
|
public StringSet getParticipants()
|
||||||
{
|
{
|
||||||
Collection<String> result;
|
StringSet result;
|
||||||
|
|
||||||
result = new HashSet<>();
|
result = new StringSet();
|
||||||
|
|
||||||
for (final Topic topic : this.individualTopics)
|
for (final Topic topic : this.individualTopics)
|
||||||
{
|
{
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/**
|
/**
|
||||||
* Copyright (C) 2017-2018 Christian Pierre MOMON <cmomon@april.org>
|
* Copyright (C) 2017-2019 Christian Pierre MOMON <cmomon@april.org>
|
||||||
* Copyright (C) 2011-2013 Nicolas Vinot <aeris@imirhil.fr>
|
* Copyright (C) 2011-2013 Nicolas Vinot <aeris@imirhil.fr>
|
||||||
*
|
*
|
||||||
* This file is part of (April) Hebdobot.
|
* This file is part of (April) Hebdobot.
|
||||||
@ -348,8 +348,8 @@ public class ReviewReporter
|
|||||||
addChunk(buffer, "Horaire de fin de la revue : " + review.getFormattedEndTime());
|
addChunk(buffer, "Horaire de fin de la revue : " + review.getFormattedEndTime());
|
||||||
addChunk(buffer, "Durée de la revue : " + review.getDurationInMinutes() + " minutes");
|
addChunk(buffer, "Durée de la revue : " + review.getDurationInMinutes() + " minutes");
|
||||||
addChunk(buffer, "Nombre de personnes participantes : " + review.getParticipants().size());
|
addChunk(buffer, "Nombre de personnes participantes : " + review.getParticipants().size());
|
||||||
|
addChunk(buffer, ReviewStatsReporter.reportNewUserCountRecord(datas));
|
||||||
addChunk(buffer, ReviewStatsReporter.reportUserCount(datas, review.getParticipants().size()));
|
addChunk(buffer, ReviewStatsReporter.reportUserCount(datas, review.getParticipants().size()));
|
||||||
addChunk(buffer, ReviewStatsReporter.reportNewMaxUserCount(datas, review.getParticipants().size()));
|
|
||||||
addChunk(buffer, ReviewStatsReporter.reportDuration(datas, review.getDurationInMinutes()));
|
addChunk(buffer, ReviewStatsReporter.reportDuration(datas, review.getDurationInMinutes()));
|
||||||
|
|
||||||
//
|
//
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/**
|
/**
|
||||||
* Copyright (C) 2017-2018 Christian Pierre MOMON <cmomon@april.org>
|
* Copyright (C) 2017-2019 Christian Pierre MOMON <cmomon@april.org>
|
||||||
* Copyright (C) 2011-2013 Nicolas Vinot <aeris@imirhil.fr>
|
* Copyright (C) 2011-2013 Nicolas Vinot <aeris@imirhil.fr>
|
||||||
*
|
*
|
||||||
* This file is part of (April) Hebdobot.
|
* This file is part of (April) Hebdobot.
|
||||||
@ -19,7 +19,7 @@
|
|||||||
*/
|
*/
|
||||||
package org.april.hebdobot.bot.review;
|
package org.april.hebdobot.bot.review;
|
||||||
|
|
||||||
import java.util.Set;
|
import fr.devinsy.strings.StringSet;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The Class Topic.
|
* The Class Topic.
|
||||||
@ -52,7 +52,7 @@ public abstract class Topic
|
|||||||
*
|
*
|
||||||
* @return the participants
|
* @return the participants
|
||||||
*/
|
*/
|
||||||
public abstract Set<String> getParticipants();
|
public abstract StringSet getParticipants();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the title.
|
* Gets the title.
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/**
|
/**
|
||||||
* Copyright (C) 2017-2018 Christian Pierre MOMON <cmomon@april.org>
|
* Copyright (C) 2017-2019 Christian Pierre MOMON <cmomon@april.org>
|
||||||
*
|
*
|
||||||
* This file is part of (April) Hebdobot.
|
* This file is part of (April) Hebdobot.
|
||||||
*
|
*
|
||||||
@ -185,6 +185,10 @@ public class ReviewDataComparator implements Comparator<ReviewData>
|
|||||||
|
|
||||||
case USERCOUNT:
|
case USERCOUNT:
|
||||||
result = compare(getUserCount(alpha), getUserCount(bravo));
|
result = compare(getUserCount(alpha), getUserCount(bravo));
|
||||||
|
if (result == 0)
|
||||||
|
{
|
||||||
|
result = compare(getDate(alpha), getDate(bravo));
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DURATION:
|
case DURATION:
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/**
|
/**
|
||||||
* Copyright (C) 2017-2018 Christian Pierre MOMON <cmomon@april.org>
|
* Copyright (C) 2017-2019 Christian Pierre MOMON <cmomon@april.org>
|
||||||
*
|
*
|
||||||
* This file is part of (April) Hebdobot.
|
* This file is part of (April) Hebdobot.
|
||||||
*
|
*
|
||||||
@ -42,6 +42,28 @@ public class ReviewDatas extends ArrayList<ReviewData>
|
|||||||
super();
|
super();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Instantiates a new review datas.
|
||||||
|
*
|
||||||
|
* @param initialCapacity
|
||||||
|
* the initial capacity
|
||||||
|
*/
|
||||||
|
public ReviewDatas(final int initialCapacity)
|
||||||
|
{
|
||||||
|
super(initialCapacity);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Instantiates a new review datas.
|
||||||
|
*
|
||||||
|
* @param source
|
||||||
|
* the source
|
||||||
|
*/
|
||||||
|
public ReviewDatas(final ReviewDatas source)
|
||||||
|
{
|
||||||
|
super(source);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Clean.
|
* Clean.
|
||||||
*
|
*
|
||||||
@ -108,6 +130,28 @@ public class ReviewDatas extends ArrayList<ReviewData>
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the last by index.
|
||||||
|
*
|
||||||
|
* @return the last by index
|
||||||
|
*/
|
||||||
|
public ReviewData getLastByIndex()
|
||||||
|
{
|
||||||
|
ReviewData result;
|
||||||
|
|
||||||
|
if (isEmpty())
|
||||||
|
{
|
||||||
|
result = null;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
result = this.get(size() - 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the last by max user count.
|
* Gets the last by max user count.
|
||||||
*
|
*
|
||||||
@ -197,6 +241,58 @@ public class ReviewDatas extends ArrayList<ReviewData>
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the previous last by index.
|
||||||
|
*
|
||||||
|
* @return the previous last by index
|
||||||
|
*/
|
||||||
|
public ReviewData getPreviousLastByIndex()
|
||||||
|
{
|
||||||
|
ReviewData result;
|
||||||
|
|
||||||
|
if ((isEmpty()) || (size() == 1))
|
||||||
|
{
|
||||||
|
result = null;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
result = this.get(size() - 2);
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Removes the first.
|
||||||
|
*
|
||||||
|
* @return the review datas
|
||||||
|
*/
|
||||||
|
public ReviewDatas removeFirst()
|
||||||
|
{
|
||||||
|
if (!isEmpty())
|
||||||
|
{
|
||||||
|
remove(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Removes the last.
|
||||||
|
*/
|
||||||
|
public ReviewDatas removeLast()
|
||||||
|
{
|
||||||
|
if (!isEmpty())
|
||||||
|
{
|
||||||
|
remove(size() - 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Reverse.
|
* Reverse.
|
||||||
*/
|
*/
|
||||||
|
@ -170,41 +170,48 @@ public class ReviewStatsReporter
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Report new max.
|
* Report new max. The current user count is found in last review by date.
|
||||||
*
|
*
|
||||||
* @param datas
|
* @param datas
|
||||||
* the datas
|
* the datas
|
||||||
* @param currentUserCount
|
|
||||||
* the current user count
|
|
||||||
* @return the string
|
* @return the string
|
||||||
*/
|
*/
|
||||||
public static String reportNewMaxUserCount(final ReviewDatas datas, final int currentUserCount)
|
public static String reportNewUserCountRecord(final ReviewDatas datas)
|
||||||
{
|
{
|
||||||
String result;
|
String result;
|
||||||
|
|
||||||
if ((datas == null) || (datas.isEmpty()))
|
if ((datas == null) || (datas.isEmpty()) || (datas.size() == 1))
|
||||||
{
|
{
|
||||||
result = "Pas de stats sur le nombre maximal de personnes participantes.";
|
result = "Absence de statistique sur la participation.";
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
datas.sortByDate();
|
ReviewDatas reviews = new ReviewDatas(datas);
|
||||||
ReviewData last = datas.getLastByMaxUserCount();
|
reviews.sortByDate();
|
||||||
if (currentUserCount == last.getUserCount())
|
ReviewData lastReview = datas.getLastByIndex();
|
||||||
|
reviews.removeLast();
|
||||||
|
reviews.sortByUserCount();
|
||||||
|
ReviewData recordReview = reviews.getLastByIndex();
|
||||||
|
|
||||||
|
if (lastReview.getUserCount() < recordReview.getUserCount())
|
||||||
|
{
|
||||||
|
String lastRecordDate = recordReview.getDate().format(DateTimeFormatter.ofPattern("EEEE dd MMMM yyyy", Locale.FRENCH));
|
||||||
|
result = String.format("Le dernier record de participation est de %d personnes le %s.", recordReview.getUserCount(), lastRecordDate);
|
||||||
|
}
|
||||||
|
else if (lastReview.getUserCount() == recordReview.getUserCount())
|
||||||
{
|
{
|
||||||
result = "Record de participation égalé.";
|
result = "Record de participation égalé.";
|
||||||
}
|
String lastRecordDate = recordReview.getDate().format(DateTimeFormatter.ofPattern("EEEE dd MMMM yyyy", Locale.FRENCH));
|
||||||
else if (currentUserCount < last.getUserCount())
|
result = String.format("\\o/ Record de participation égalé \\o/ Le précédent record était de %d personnes le %s.",
|
||||||
{
|
recordReview.getUserCount(), lastRecordDate);
|
||||||
result = "Pas de nouveau record de participation.";
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
result = "Nouveau record de personnes participantes !";
|
String lastRecordDate = recordReview.getDate().format(DateTimeFormatter.ofPattern("EEEE dd MMMM yyyy", Locale.FRENCH));
|
||||||
|
result = String.format(
|
||||||
|
"*\\o/* Nouveau record de participation : %d personnes ! *\\o/* Le précédent record était de %d personnes le %s.",
|
||||||
|
lastReview.getUserCount(), recordReview.getUserCount(), lastRecordDate);
|
||||||
}
|
}
|
||||||
|
|
||||||
String lastRecordDate = last.getDate().format(DateTimeFormatter.ofPattern("EEEE dd MMMM yyyy", Locale.FRENCH));
|
|
||||||
result = String.format("%s Le dernier record de %d personnes participantes remonte au %s.", result, last.getUserCount(), lastRecordDate);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
@ -254,7 +261,7 @@ public class ReviewStatsReporter
|
|||||||
|
|
||||||
if ((datas == null) || (datas.isEmpty()))
|
if ((datas == null) || (datas.isEmpty()))
|
||||||
{
|
{
|
||||||
result = "Pas de statistique sur le nombre de personnes participantes.";
|
result = "Absence de statistique sur la participation.";
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -314,13 +321,13 @@ public class ReviewStatsReporter
|
|||||||
|
|
||||||
if ((datas == null) || (datas.isEmpty()))
|
if ((datas == null) || (datas.isEmpty()))
|
||||||
{
|
{
|
||||||
result = "Indisponibilité de statistiques sur la participation à la revue.";
|
result = "Absence de statistique sur la participation à la revue.";
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ReviewData recordReview = datas.getLastByMaxUserCount();
|
ReviewData recordReview = datas.getLastByMaxUserCount();
|
||||||
String recordDate = recordReview.getDate().format(DateTimeFormatter.ofPattern("EEEE dd MMMM yyyy", Locale.FRENCH));
|
String recordDate = recordReview.getDate().format(DateTimeFormatter.ofPattern("EEEE dd MMMM yyyy", Locale.FRENCH));
|
||||||
result = String.format("Le record de participation est de %d personnes et remonte au %s.", recordReview.getUserCount(), recordDate);
|
result = String.format("Le record de participation est de %d personnes le %s.", recordReview.getUserCount(), recordDate);
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/**
|
/**
|
||||||
* Copyright (C) 2018 Christian Pierre MOMON <cmomon@april.org>
|
* Copyright (C) 2018-2019 Christian Pierre MOMON <cmomon@april.org>
|
||||||
*
|
*
|
||||||
* This file is part of (April) Hebdobot.
|
* This file is part of (April) Hebdobot.
|
||||||
*
|
*
|
||||||
@ -86,16 +86,17 @@ public class ReviewStatsTest
|
|||||||
* the exception
|
* the exception
|
||||||
*/
|
*/
|
||||||
@Test
|
@Test
|
||||||
public void testReportNewMaxUserCount01() throws Exception
|
public void testReportNewUserCountRecord01() throws Exception
|
||||||
{
|
{
|
||||||
System.out.println("================");
|
System.out.println("================");
|
||||||
ReviewDatas datas = ReviewDatasFile.load(new File("test/org/april/hebdobot/reviewstats/reviewstats.csv"));
|
ReviewDatas datas = ReviewDatasFile.load(new File("test/org/april/hebdobot/reviewstats/reviewstats.csv"));
|
||||||
datas.clean();
|
datas.clean();
|
||||||
logger.debug("File loaded.");
|
logger.debug("File loaded.");
|
||||||
ReviewData currentReview = new ReviewData(LocalDateTime.now(), 12, 17L);
|
ReviewData currentReview = new ReviewData(LocalDateTime.now(), 12, 17L);
|
||||||
String report = ReviewStatsReporter.reportNewMaxUserCount(datas, currentReview.getUserCount());
|
datas.add(currentReview);
|
||||||
|
String report = ReviewStatsReporter.reportNewUserCountRecord(datas);
|
||||||
logger.debug("Report=" + report);
|
logger.debug("Report=" + report);
|
||||||
Assert.assertTrue(StringUtils.startsWith(report, "Pas de nouveau record"));
|
Assert.assertTrue(StringUtils.startsWith(report, "Le dernier record de"));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -105,16 +106,17 @@ public class ReviewStatsTest
|
|||||||
* the exception
|
* the exception
|
||||||
*/
|
*/
|
||||||
@Test
|
@Test
|
||||||
public void testReportNewMaxUserCount02() throws Exception
|
public void testReportNewUserCountRecord02() throws Exception
|
||||||
{
|
{
|
||||||
System.out.println("================");
|
System.out.println("================");
|
||||||
ReviewDatas datas = ReviewDatasFile.load(new File("test/org/april/hebdobot/reviewstats/reviewstats.csv"));
|
ReviewDatas datas = ReviewDatasFile.load(new File("test/org/april/hebdobot/reviewstats/reviewstats.csv"));
|
||||||
datas.clean();
|
datas.clean();
|
||||||
logger.debug("File loaded.");
|
logger.debug("File loaded.");
|
||||||
ReviewData currentReview = new ReviewData(LocalDateTime.now(), 42000, 17L);
|
ReviewData currentReview = new ReviewData(LocalDateTime.now(), 42000, 17L);
|
||||||
String report = ReviewStatsReporter.reportNewMaxUserCount(datas, currentReview.getUserCount());
|
datas.add(currentReview);
|
||||||
|
String report = ReviewStatsReporter.reportNewUserCountRecord(datas);
|
||||||
logger.debug("Report=" + report);
|
logger.debug("Report=" + report);
|
||||||
Assert.assertTrue(StringUtils.startsWith(report, "Nouveau record de personnes participantes !"));
|
Assert.assertTrue(StringUtils.startsWith(report, "*\\o/* Nouveau record de participation"));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
Reference in New Issue
Block a user