public async Task GetMessages_TeamAndMemberName_ReturnsEstimationEndedMessage() { await using var fixture = new PlanningPokerSignalRClientFixture(); var resultTask = fixture.Target.GetMessages(PlanningPokerData.TeamName, PlanningPokerData.MemberName, 0, fixture.CancellationToken); var message = new EstimationResultMessage { Id = 8, Type = MessageType.EstimationEnded, EstimationResult = new List <EstimationResultItem> { new EstimationResultItem { Member = new TeamMember { Name = PlanningPokerData.ScrumMasterName, Type = PlanningPokerData.ScrumMasterType }, Estimation = new Estimation { Value = 2 } }, new EstimationResultItem { Member = new TeamMember { Name = PlanningPokerData.MemberName, Type = PlanningPokerData.MemberType }, Estimation = new Estimation() }, new EstimationResultItem { Member = new TeamMember { Name = "Me", Type = PlanningPokerData.MemberType } }, new EstimationResultItem { Member = new TeamMember { Name = PlanningPokerData.ObserverName, Type = PlanningPokerData.MemberType }, Estimation = new Estimation { Value = Estimation.PositiveInfinity } } } }; await ProvideMessages(fixture, message); var result = await resultTask; await Task.Yield(); Assert.AreEqual(1, result.Count); Assert.AreEqual(message, result[0]); var estimationResult = ((EstimationResultMessage)result[0]).EstimationResult; Assert.AreEqual(2.0, estimationResult[0].Estimation.Value); Assert.IsNull(estimationResult[1].Estimation.Value); Assert.IsNull(estimationResult[2].Estimation); Assert.IsTrue(double.IsPositiveInfinity(estimationResult[3].Estimation.Value.Value)); }
public void Constructor_TypeSpecified_MessageTypeIsSet() { // Arrange var type = MessageType.EstimationEnded; // Act var result = new EstimationResultMessage(type); // Verify Assert.AreEqual <MessageType>(type, result.MessageType); }
public void EstimationResult_Set_EstimationResultIsSet() { // Arrange var target = new EstimationResultMessage(MessageType.EstimationEnded); var estimationResult = new EstimationResult(Enumerable.Empty <Member>()); // Act target.EstimationResult = estimationResult; // Verify Assert.AreEqual <EstimationResult>(estimationResult, target.EstimationResult); }
public void JsonSerialize_Message_EstimationEnded() { var message = new EstimationResultMessage { Id = 10, Type = MessageType.EstimationEnded, EstimationResult = new List <EstimationResultItem> { new EstimationResultItem { Member = new TeamMember { Name = "master", Type = "ScrumMaster" }, Estimation = new Estimation { Value = 8 } }, new EstimationResultItem { Member = new TeamMember { Name = "dev", Type = "Member" }, Estimation = new Estimation { Value = 13 } } } }; var result = SerializeAndDeserialize <Message>(message); Assert.IsNotNull(result); Assert.AreEqual(message.Id, result.Id); Assert.AreEqual(message.Type, result.Type); Assert.IsInstanceOfType(result, typeof(EstimationResultMessage)); var estimationResult = (EstimationResultMessage)result; Assert.AreEqual(message.EstimationResult[0].Member.Name, estimationResult.EstimationResult[0].Member.Name); Assert.AreEqual(message.EstimationResult[0].Member.Type, estimationResult.EstimationResult[0].Member.Type); Assert.AreEqual(message.EstimationResult[0].Estimation.Value, estimationResult.EstimationResult[0].Estimation.Value); Assert.AreEqual(message.EstimationResult[1].Member.Name, estimationResult.EstimationResult[1].Member.Name); Assert.AreEqual(message.EstimationResult[1].Member.Type, estimationResult.EstimationResult[1].Member.Type); Assert.AreEqual(message.EstimationResult[1].Estimation.Value, estimationResult.EstimationResult[1].Estimation.Value); }
private static void AssertEstimationResultMessagesAreEqual(EstimationResultMessage expected, EstimationResultMessage actual) { AssertEstimationResultsAreEqual(expected.EstimationResult, actual.EstimationResult); }
private void OnEstimationEnded(EstimationResultMessage message) { _memberEstimations = GetMemberEstimationList(message.EstimationResult); ScrumTeam.State = TeamState.EstimationFinished; }
public async Task ProcessMessages_EstimationEndedAndSameEstimationCountWithNull_6Estimations() { var propertyChangedCounter = new PropertyChangedCounter(); var scrumTeam = PlanningPokerData.GetScrumTeam(); scrumTeam.Members.Add(new TeamMember { Type = PlanningPokerData.MemberType, Name = "Developer 1" }); scrumTeam.Members.Add(new TeamMember { Type = PlanningPokerData.MemberType, Name = "Developer 2" }); scrumTeam.Members.Add(new TeamMember { Type = PlanningPokerData.MemberType, Name = "Tester 1" }); scrumTeam.Members.Add(new TeamMember { Type = PlanningPokerData.MemberType, Name = "Tester 2" }); var target = CreateController(propertyChangedCounter); await target.InitializeTeam(scrumTeam, PlanningPokerData.MemberName); var message = new EstimationResultMessage { Id = 10, Type = MessageType.EstimationEnded, EstimationResult = new List <EstimationResultItem> { new EstimationResultItem { Member = new TeamMember { Type = PlanningPokerData.ScrumMasterType, Name = PlanningPokerData.ScrumMasterName }, Estimation = new Estimation { Value = double.PositiveInfinity } }, new EstimationResultItem { Member = new TeamMember { Type = PlanningPokerData.MemberType, Name = "Developer 2" }, Estimation = new Estimation { Value = null } }, new EstimationResultItem { Member = new TeamMember { Type = PlanningPokerData.MemberType, Name = "Tester 1" }, Estimation = new Estimation { Value = null } }, new EstimationResultItem { Member = new TeamMember { Type = PlanningPokerData.MemberType, Name = PlanningPokerData.MemberName }, Estimation = new Estimation { Value = double.PositiveInfinity } }, new EstimationResultItem { Member = new TeamMember { Type = PlanningPokerData.MemberType, Name = "Developer 1" }, Estimation = new Estimation { Value = 5 } }, new EstimationResultItem { Member = new TeamMember { Type = PlanningPokerData.MemberType, Name = "Tester 2" }, Estimation = new Estimation { Value = 5 } } } }; StartEstimation(target); ProcessMessage(target, message); Assert.AreEqual(2, propertyChangedCounter.Count); Assert.AreEqual(10, target.LastMessageId); Assert.AreEqual(TeamState.EstimationFinished, target.ScrumTeam.State); Assert.IsFalse(target.CanSelectEstimation); Assert.IsFalse(target.CanStartEstimation); Assert.IsFalse(target.CanCancelEstimation); var estimations = target.Estimations.ToList(); Assert.AreEqual(6, estimations.Count); var estimation = estimations[0]; Assert.AreEqual("Developer 1", estimation.MemberName); Assert.IsTrue(estimation.HasEstimation); Assert.AreEqual(5.0, estimation.Estimation); estimation = estimations[1]; Assert.AreEqual("Tester 2", estimation.MemberName); Assert.IsTrue(estimation.HasEstimation); Assert.AreEqual(5.0, estimation.Estimation); estimation = estimations[2]; Assert.AreEqual(PlanningPokerData.MemberName, estimation.MemberName); Assert.IsTrue(estimation.HasEstimation); Assert.AreEqual(double.PositiveInfinity, estimation.Estimation); estimation = estimations[3]; Assert.AreEqual(PlanningPokerData.ScrumMasterName, estimation.MemberName); Assert.IsTrue(estimation.HasEstimation); Assert.AreEqual(double.PositiveInfinity, estimation.Estimation); estimation = estimations[4]; Assert.AreEqual("Developer 2", estimation.MemberName); Assert.IsTrue(estimation.HasEstimation); Assert.IsNull(estimation.Estimation); estimation = estimations[5]; Assert.AreEqual("Tester 1", estimation.MemberName); Assert.IsTrue(estimation.HasEstimation); Assert.IsNull(estimation.Estimation); }
public async Task ProcessMessages_EstimationEnded_5Estimations() { var propertyChangedCounter = new PropertyChangedCounter(); var scrumTeam = PlanningPokerData.GetScrumTeam(); scrumTeam.Members.Add(new TeamMember { Type = PlanningPokerData.MemberType, Name = "Developer 1" }); scrumTeam.Members.Add(new TeamMember { Type = PlanningPokerData.MemberType, Name = "Tester" }); scrumTeam.Members.Add(new TeamMember { Type = PlanningPokerData.MemberType, Name = "Developer 2" }); var target = CreateController(propertyChangedCounter); await target.InitializeTeam(scrumTeam, PlanningPokerData.ScrumMasterName); var message1 = new MemberMessage { Id = 5, Type = MessageType.MemberEstimated, Member = new TeamMember { Type = PlanningPokerData.MemberType, Name = "Developer 1" } }; var message2 = new MemberMessage { Id = 6, Type = MessageType.MemberEstimated, Member = new TeamMember { Type = PlanningPokerData.MemberType, Name = PlanningPokerData.MemberName } }; var message3 = new MemberMessage { Id = 7, Type = MessageType.MemberEstimated, Member = new TeamMember { Type = PlanningPokerData.ScrumMasterType, Name = PlanningPokerData.ScrumMasterName } }; var message4 = new MemberMessage { Id = 8, Type = MessageType.MemberEstimated, Member = new TeamMember { Type = PlanningPokerData.MemberType, Name = "Tester" } }; var message5 = new MemberMessage { Id = 9, Type = MessageType.MemberEstimated, Member = new TeamMember { Type = PlanningPokerData.MemberType, Name = "Developer 2" } }; var message = new EstimationResultMessage { Id = 10, Type = MessageType.EstimationEnded, EstimationResult = new List <EstimationResultItem> { new EstimationResultItem { Member = new TeamMember { Type = PlanningPokerData.MemberType, Name = "Developer 1" }, Estimation = new Estimation { Value = 8 } }, new EstimationResultItem { Member = new TeamMember { Type = PlanningPokerData.MemberType, Name = "Tester" }, Estimation = new Estimation { Value = 8 } }, new EstimationResultItem { Member = new TeamMember { Type = PlanningPokerData.ScrumMasterType, Name = PlanningPokerData.ScrumMasterName }, Estimation = new Estimation { Value = 3 } }, new EstimationResultItem { Member = new TeamMember { Type = PlanningPokerData.MemberType, Name = PlanningPokerData.MemberName }, Estimation = new Estimation { Value = 8 } }, new EstimationResultItem { Member = new TeamMember { Type = PlanningPokerData.MemberType, Name = "Developer 2" }, Estimation = new Estimation { Value = 2 } } } }; StartEstimation(target); ProcessMessage(target, message1); target.ProcessMessages(new Message[] { message2, message3, message4 }); target.ProcessMessages(new Message[] { message5, message }); Assert.AreEqual(7, propertyChangedCounter.Count); Assert.AreEqual(10, target.LastMessageId); Assert.AreEqual(TeamState.EstimationFinished, target.ScrumTeam.State); Assert.IsFalse(target.CanSelectEstimation); Assert.IsTrue(target.CanStartEstimation); Assert.IsFalse(target.CanCancelEstimation); var estimations = target.Estimations.ToList(); Assert.AreEqual(5, estimations.Count); var estimation = estimations[0]; Assert.AreEqual("Developer 1", estimation.MemberName); Assert.IsTrue(estimation.HasEstimation); Assert.AreEqual(8.0, estimation.Estimation); estimation = estimations[1]; Assert.AreEqual(PlanningPokerData.MemberName, estimation.MemberName); Assert.IsTrue(estimation.HasEstimation); Assert.AreEqual(8.0, estimation.Estimation); estimation = estimations[2]; Assert.AreEqual("Tester", estimation.MemberName); Assert.IsTrue(estimation.HasEstimation); Assert.AreEqual(8.0, estimation.Estimation); estimation = estimations[3]; Assert.AreEqual("Developer 2", estimation.MemberName); Assert.IsTrue(estimation.HasEstimation); Assert.AreEqual(2.0, estimation.Estimation); estimation = estimations[4]; Assert.AreEqual(PlanningPokerData.ScrumMasterName, estimation.MemberName); Assert.IsTrue(estimation.HasEstimation); Assert.AreEqual(3.0, estimation.Estimation); }
public async Task GetMessages_TeamAndMemberName_Returns3Messages() { await using var fixture = new PlanningPokerSignalRClientFixture(); var resultTask = fixture.Target.GetMessages(PlanningPokerData.TeamName, PlanningPokerData.MemberName, 0, fixture.CancellationToken); var estimationStartedMessage = new Message { Id = 8, Type = MessageType.EstimationStarted }; var memberEstimatedMessage = new MemberMessage { Id = 9, Type = MessageType.MemberEstimated, Member = new TeamMember { Name = PlanningPokerData.ScrumMasterName, Type = PlanningPokerData.ScrumMasterType } }; var estimationEndedMessage = new EstimationResultMessage { Id = 10, Type = MessageType.MemberEstimated, EstimationResult = new List <EstimationResultItem> { new EstimationResultItem { Member = new TeamMember { Name = PlanningPokerData.ScrumMasterName, Type = PlanningPokerData.ScrumMasterType }, Estimation = new Estimation { Value = 5 } }, new EstimationResultItem { Member = new TeamMember { Name = PlanningPokerData.MemberName, Type = PlanningPokerData.MemberType }, Estimation = new Estimation { Value = 40 } } } }; await ProvideMessages(fixture, estimationStartedMessage, memberEstimatedMessage, estimationEndedMessage); var result = await resultTask; await Task.Yield(); Assert.AreEqual(3, result.Count); Assert.AreEqual(estimationStartedMessage, result[0]); Assert.AreEqual(memberEstimatedMessage, result[1]); Assert.AreEqual(estimationEndedMessage, result[2]); var estimationResult = ((EstimationResultMessage)result[2]).EstimationResult; Assert.AreEqual(5.0, estimationResult[0].Estimation.Value); Assert.AreEqual(40.0, estimationResult[1].Estimation.Value); }