public void DoesNotPostTwiceInTheSameChannel() { var commandParser = new Mock <ICommandParser>(); var processor = new TeamcityWebhooksMessageProcessor(new InMemoryKeyValueStore(), commandParser.Object); processor.ProcessMessage(new Message("a-channel", "a-user", "m#1"), "branch", "master", "breakages"); processor.ProcessMessage(new Message("a-channel", "a-user", "m#1"), "branch", "master", "breakages"); processor.Accept(new TeamcityEvent(TeamcityEventType.BuildFinished, "build-id", "buildType", "build name", BuildResultDelta.Broken, "master", TeamcityBuildState.Unknown, "", "1.0")); var response = processor.ProcessTimerTick(); Assert.AreEqual(1, response.Responses.Count()); }
public void StartsTrackingBreakagesOnBranch() { var commandParser = CommandParser.For("track breakages for branch master"); var processor = new TeamcityWebhooksMessageProcessor(m_TrackedBuilds.Object, m_TrackedBranches.Object, commandParser); var response = processor.ProcessMessage(new Message("a-channel", "a-user", "a-message")); Assert.AreEqual("Now tracking breakages for branch master", response.Responses.Single().Message); m_TrackedBranches.Verify(x => x.Set("a-channel:::master", new Tracked <Branch>(new Branch(TeamcityEventTypes.BreakingBuilds, "master", null), "a-channel"))); }
public void StartsTrackingBuild() { var commandParser = CommandParser.For("track build 12345"); var processor = new TeamcityWebhooksMessageProcessor(m_TrackedBuilds.Object, m_TrackedBranches.Object, commandParser); var response = processor.ProcessMessage(new Message("a-channel", "a-user", "scbot track build 12345")); Assert.AreEqual("Now tracking build#12345", response.Responses.Single().Message); m_TrackedBuilds.Verify(x => x.Set("a-channel:::12345", new Tracked <Build>(new Build("12345"), "a-channel"))); }