private static void AssertSingleMessage(TeamCollectionMessage msg, MessageAndMilestoneType expectedType, string expectedL10n, string expectedMsg, string expectedParam0, string expectedParam1) { Assert.That(msg.MessageType, Is.EqualTo(expectedType)); Assert.That(msg.L10NId, Is.EqualTo(expectedL10n)); Assert.That(msg.RawEnglishMessageTemplate, Is.EqualTo(expectedMsg)); Assert.That(msg.Param0 ?? "", Is.EqualTo(expectedParam0 ?? "")); Assert.That(msg.Param1 ?? "", Is.EqualTo(expectedParam1 ?? "")); }
private void AssertMessage(List <TeamCollectionMessage> messages, int index, MessageAndMilestoneType expectedType, string expectedL10n, string expectedMsg, string expectedParam0 = null, string expectedParam1 = null) { Assert.That(messages.Count, Is.GreaterThan(index)); var msg = messages[index]; AssertSingleMessage(msg, expectedType, expectedL10n, expectedMsg, expectedParam0, expectedParam1); }
public TeamCollectionMessage(MessageAndMilestoneType messageType, string l10nId, string rawEnglishMessageTemplate, string param0 = null, string param1 = null) { MessageType = messageType; When = DateTime.UtcNow; L10NId = l10nId; RawEnglishMessageTemplate = rawEnglishMessageTemplate; Param0 = param0; Param1 = param1; }
public void WriteMessage(MessageAndMilestoneType messageType, string l10nId, string message, string param0 = "", string param1 = "") { if (IsRedundantMessage(messageType, l10nId, message, param0, param1)) { return; } var msg = new TeamCollectionMessage(messageType, l10nId, message, param0, param1); WriteMessage(msg); }
// Check that the indicated message made it into the progress report, and ALSO // into the log. protected void AssertProgress(string msg, string param0 = null, string param1 = null, MessageAndMilestoneType expectedType = MessageAndMilestoneType.History) { var expectedMsg = string.Format(msg, param0, param1); if (expectedType == MessageAndMilestoneType.Error || expectedType == MessageAndMilestoneType.ErrorNoReload) { Assert.That(_progressSpy.Errors, Contains.Item(expectedMsg)); } else { Assert.That(_progressSpy.ProgressMessages, Contains.Item(expectedMsg)); } Assert.That(_tcLog.Messages, Has.Exactly(1).Matches <TeamCollectionMessage>(m => m.RawEnglishMessageTemplate == msg && (m.Param0 ?? "") == (param0 ?? "") && (m.Param1 ?? "") == (param1 ?? "") && m.MessageType == expectedType)); }
private bool IsRedundantMessage(MessageAndMilestoneType messageType, string l10nId, string message, string param0, string param1) { if (messageType == MessageAndMilestoneType.NewStuff) { return(CurrentNewStuff.Any((msg) => msg.MessageType == messageType && msg.L10NId == l10nId && MatchParams(msg.Param0, param0) && MatchParams(msg.Param1, param1))); } if (messageType == MessageAndMilestoneType.Error || messageType == MessageAndMilestoneType.ErrorNoReload) { // At some point, if we're loading the whole history of messages, this might want to consider whether // the message is redundant with a current session report. But currently we reset completely for each // session, and problems (particularly the one produced by a bad zip file in the repo) tend to be very // frequent. We need to look at everything to weed out duplicates. return(Messages.Any(msg => (msg.MessageType == MessageAndMilestoneType.Error || msg.MessageType == MessageAndMilestoneType.ErrorNoReload) && msg.L10NId == l10nId && msg.RawEnglishMessageTemplate == message && MatchParams(msg.Param0, param0) && MatchParams(msg.Param1, param1))); } return(false); }
public void WriteMilestone(MessageAndMilestoneType milestoneType) { WriteMessage(milestoneType, null, null, null, null); }