示例#1
0
 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 ?? ""));
 }
示例#2
0
        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;
 }
示例#4
0
        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));
        }
示例#6
0
        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);
        }
示例#7
0
 public void WriteMilestone(MessageAndMilestoneType milestoneType)
 {
     WriteMessage(milestoneType, null, null, null, null);
 }