Exemplo n.º 1
0
        public void ReconnectTeam_TeamNameAndMemberNameAndEstimationStarted_AllMembersAreEstimationParticipants()
        {
            // Arrange
            var team   = CreateBasicTeam();
            var member = (D.Member)team.Join(MemberName, false);

            team.ScrumMaster.StartEstimation();

            var teamLock      = CreateTeamLock(team);
            var planningPoker = new Mock <D.IPlanningPoker>(MockBehavior.Strict);

            planningPoker.Setup(p => p.GetScrumTeam(TeamName)).Returns(teamLock.Object).Verifiable();
            var target = new PlanningPokerService(planningPoker.Object);

            // Act
            var result = target.ReconnectTeam(TeamName, MemberName).Value;

            // Verify
            planningPoker.Verify();
            teamLock.Verify();
            teamLock.Verify(l => l.Team);

            Assert.IsNotNull(result);
            Assert.IsNotNull(result.ScrumTeam);
            Assert.IsNotNull(result.ScrumTeam.EstimationParticipants);
            var expectedParticipants = new string[] { ScrumMasterName, MemberName };

            CollectionAssert.AreEqual(expectedParticipants, result.ScrumTeam.EstimationParticipants.Select(p => p.MemberName).ToList());
        }
Exemplo n.º 2
0
        public void ReconnectTeam_TeamNameAndMemberNameAndMemberNotEstimated_NoSelectedEstimation()
        {
            // Arrange
            var team   = CreateBasicTeam();
            var member = (D.Member)team.Join(MemberName, false);

            team.ScrumMaster.StartEstimation();

            var teamLock      = CreateTeamLock(team);
            var planningPoker = new Mock <D.IPlanningPoker>(MockBehavior.Strict);

            planningPoker.Setup(p => p.GetScrumTeam(TeamName)).Returns(teamLock.Object).Verifiable();
            var target = new PlanningPokerService(planningPoker.Object);

            // Act
            var result = target.ReconnectTeam(TeamName, MemberName).Value;

            // Verify
            planningPoker.Verify();
            teamLock.Verify();
            teamLock.Verify(l => l.Team);

            Assert.IsNotNull(result);
            Assert.IsNull(result.SelectedEstimation);
        }
Exemplo n.º 3
0
        public void ReconnectTeam_TeamNameAndMemberNameAndEstimationFinished_EstimationResultIsSet()
        {
            // Arrange
            var team   = CreateBasicTeam();
            var member = (D.Member)team.Join(MemberName, false);

            team.ScrumMaster.StartEstimation();
            member.Estimation           = new D.Estimation(1);
            team.ScrumMaster.Estimation = new D.Estimation(2);

            var teamLock      = CreateTeamLock(team);
            var planningPoker = new Mock <D.IPlanningPoker>(MockBehavior.Strict);

            planningPoker.Setup(p => p.GetScrumTeam(TeamName)).Returns(teamLock.Object).Verifiable();
            var target = new PlanningPokerService(planningPoker.Object);

            // Act
            var result = target.ReconnectTeam(TeamName, MemberName).Value;

            // Verify
            planningPoker.Verify();
            teamLock.Verify();
            teamLock.Verify(l => l.Team);

            Assert.IsNotNull(result);
            Assert.IsNotNull(result.ScrumTeam);
            Assert.IsNotNull(result.ScrumTeam.EstimationResult);

            var expectedEstimations = new double?[] { 2, 1 };

            CollectionAssert.AreEquivalent(expectedEstimations, result.ScrumTeam.EstimationResult.Select(e => e.Estimation.Value).ToList());
        }
Exemplo n.º 4
0
        public void ReconnectTeam_TeamNameAndMemberNameWithMessages_ReturnsLastMessageId()
        {
            // Arrange
            var team   = CreateBasicTeam();
            var member = team.Join(MemberName, false);

            team.ScrumMaster.StartEstimation();

            var teamLock      = CreateTeamLock(team);
            var planningPoker = new Mock <D.IPlanningPoker>(MockBehavior.Strict);

            planningPoker.Setup(p => p.GetScrumTeam(TeamName)).Returns(teamLock.Object).Verifiable();
            var target = new PlanningPokerService(planningPoker.Object);

            // Act
            var result = target.ReconnectTeam(TeamName, MemberName).Value;

            // Verify
            planningPoker.Verify();
            teamLock.Verify();
            teamLock.Verify(l => l.Team);

            Assert.IsNotNull(result);
            Assert.IsNotNull(result.ScrumTeam);
            Assert.AreEqual <long>(1, result.LastMessageId);
            Assert.IsFalse(member.HasMessage);
        }
Exemplo n.º 5
0
        public void ReconnectTeam_TeamNameAndMemberName_ReturnsReconnectedTeam()
        {
            // Arrange
            var team          = CreateBasicTeam();
            var member        = team.Join(MemberName, false);
            var teamLock      = CreateTeamLock(team);
            var planningPoker = new Mock <D.IPlanningPoker>(MockBehavior.Strict);

            planningPoker.Setup(p => p.GetScrumTeam(TeamName)).Returns(teamLock.Object).Verifiable();
            var target = new PlanningPokerService(planningPoker.Object);

            // Act
            var result = target.ReconnectTeam(TeamName, MemberName).Value;

            // Verify
            planningPoker.Verify();
            teamLock.Verify();
            teamLock.Verify(l => l.Team);

            Assert.IsNotNull(result);
            Assert.IsNotNull(result.ScrumTeam);
            Assert.AreEqual <long>(0, result.LastMessageId);
            Assert.AreEqual <string>(TeamName, result.ScrumTeam.Name);
            Assert.IsNotNull(result.ScrumTeam.ScrumMaster);
            Assert.AreEqual <string>(ScrumMasterName, result.ScrumTeam.ScrumMaster.Name);
            Assert.IsNotNull(result.ScrumTeam.Members);
            var expectedMembers = new string[] { ScrumMasterName, MemberName };

            CollectionAssert.AreEquivalent(expectedMembers, result.ScrumTeam.Members.Select(m => m.Name).ToList());
            var expectedMemberTypes = new string[] { typeof(D.ScrumMaster).Name, typeof(D.Member).Name };

            CollectionAssert.AreEquivalent(expectedMemberTypes, result.ScrumTeam.Members.Select(m => m.Type).ToList());
        }
Exemplo n.º 6
0
        public void ReconnectTeam_MemberNameTooLong_ArgumentException()
        {
            // Arrange
            var planningPoker = new Mock <D.IPlanningPoker>(MockBehavior.Strict);
            var target        = new PlanningPokerService(planningPoker.Object);

            // Act
            target.ReconnectTeam(TeamName, LongMemberName);
        }
Exemplo n.º 7
0
        public void ReconnectTeam_TeamNameIsEmpty_ArgumentNullException()
        {
            // Arrange
            var planningPoker = new Mock <D.IPlanningPoker>(MockBehavior.Strict);
            var target        = new PlanningPokerService(planningPoker.Object);

            // Act
            target.ReconnectTeam(null, MemberName);
        }
Exemplo n.º 8
0
        public void ReconnectTeam_TeamNameAndNonExistingMemberName_ArgumentException()
        {
            // Arrange
            var team          = CreateBasicTeam();
            var teamLock      = CreateTeamLock(team);
            var planningPoker = new Mock <D.IPlanningPoker>(MockBehavior.Strict);

            planningPoker.Setup(p => p.GetScrumTeam(TeamName)).Returns(teamLock.Object).Verifiable();
            var target = new PlanningPokerService(planningPoker.Object);

            // Act
            var result = target.ReconnectTeam(TeamName, MemberName);

            // Verify
            Assert.IsInstanceOfType(result.Result, typeof(BadRequestObjectResult));
        }