Пример #1
0
        public void ObservableMessages_MemberEstimated_ScrumTeamMemberMessage()
        {
            // Arrange
            var target = new AzurePlanningPokerController();

            target.EndInitialization();
            var messages = new List <ScrumTeamMessage>();
            var teamLock = target.CreateScrumTeam("test", "master");

            teamLock.Team.ScrumMaster.StartEstimation();

            // Act
            target.ObservableMessages.Subscribe(m => messages.Add(m));
            teamLock.Team.ScrumMaster.Estimation = new Estimation(3.0);
            target.Dispose();

            // Verify
            Assert.AreEqual <int>(2, messages.Count);
            Assert.AreEqual <MessageType>(MessageType.MemberEstimated, messages[0].MessageType);
            Assert.AreEqual <string>("test", messages[0].TeamName);
            Assert.IsInstanceOfType(messages[0], typeof(ScrumTeamMemberEstimationMessage));
            var memberMessage = (ScrumTeamMemberEstimationMessage)messages[0];

            Assert.AreEqual <string>("master", memberMessage.MemberName);
            Assert.AreEqual <double?>(3.0, memberMessage.Estimation);
        }
Пример #2
0
        public void CreateScrumteam_TeamNameIsInInitializationTeamList_ArgumentException()
        {
            // Arrange
            var target = new AzurePlanningPokerController();

            target.SetTeamsInitializingList(new string[] { "test" });

            // Act
            target.CreateScrumTeam("test", "master");
        }
Пример #3
0
        public void GetScrumTeam_InitializationTimeout_ArgumentException()
        {
            // Arrange
            var configuration = new AzurePlanningPokerConfigurationElement()
            {
                InitializationTimeout = 1
            };
            var target = new AzurePlanningPokerController(null, configuration, null);

            // Act
            target.GetScrumTeam("test team");
        }
Пример #4
0
        public void CreateScrumteam_InitializationTimeout_Exception()
        {
            // Arrange
            var configuration = new AzurePlanningPokerConfigurationElement()
            {
                InitializationTimeout = 1
            };
            var target = new AzurePlanningPokerController(null, configuration, null);

            // Act
            target.CreateScrumTeam("test", "master");
        }
Пример #5
0
        public void SetTeamsInitializingList_AfterEndInitialization_NotDeleteAnythingFromRepository()
        {
            // Arrange
            var repository = new Mock <IScrumTeamRepository>(MockBehavior.Strict);
            var target     = new AzurePlanningPokerController(null, null, repository.Object);

            target.EndInitialization();

            // Act
            target.SetTeamsInitializingList(new string[] { "team" });

            // Verify
            repository.Verify(r => r.DeleteAll(), Times.Never());
        }
Пример #6
0
        public void SetTeamsInitializingList_TeamSpeacified_DeleteAllFromRepository()
        {
            // Arrange
            var repository = new Mock <IScrumTeamRepository>(MockBehavior.Strict);

            repository.Setup(r => r.DeleteAll());
            var target = new AzurePlanningPokerController(null, null, repository.Object);

            // Act
            target.SetTeamsInitializingList(new string[] { "team" });

            // Verify
            repository.Verify(r => r.DeleteAll());
        }
Пример #7
0
        public void GetScrumTeam_TeamIsNotWaitingForInitialization_ReturnsTeam()
        {
            // Arrange
            var target = new AzurePlanningPokerController();

            target.SetTeamsInitializingList(new string[] { "test team", "team2" });
            target.InitializeScrumTeam(new ScrumTeam("test team"));

            // Act
            var result = target.GetScrumTeam("test team");

            // Verify
            Assert.IsNotNull(result);
        }
Пример #8
0
        public void InitializeScrumTeam_TeamSpeacified_TeamAddedToController()
        {
            // Arrange
            var target = new AzurePlanningPokerController();
            var team   = new ScrumTeam("team");

            target.SetTeamsInitializingList(new string[] { "team" });

            // Act
            target.InitializeScrumTeam(team);

            // Verify
            var result = target.GetScrumTeam("team");

            Assert.AreEqual <ScrumTeam>(team, result.Team);
        }
Пример #9
0
        public void CreateScrumteam_AfterInitialization_CreatesNewTeam()
        {
            // Arrange
            var target = new AzurePlanningPokerController();

            target.EndInitialization();

            // Act
            var result = target.CreateScrumTeam("test", "master");

            // Verify
            Assert.IsNotNull(result);
            Assert.IsNotNull(result.Team);
            Assert.AreEqual <string>("test", result.Team.Name);
            Assert.AreEqual <string>("master", result.Team.ScrumMaster.Name);
        }
Пример #10
0
        public void InitializeScrumTeam_TeamSpecified_TeamCreatedMessageIsNotSent()
        {
            // Arrange
            var target = new AzurePlanningPokerController();
            var team   = new ScrumTeam("team");

            target.SetTeamsInitializingList(new string[] { "team" });
            ScrumTeamMessage message = null;

            target.ObservableMessages.Subscribe(m => message = m);

            // Act
            target.InitializeScrumTeam(team);

            // Verify
            Assert.IsNull(message);
        }
Пример #11
0
        public void CreateScrumteam_InitializationTeamListIsNotSet_WaitForInitializationTeamList()
        {
            // Arrange
            var target = new AzurePlanningPokerController();

            // Act
            var task = Task.Factory.StartNew <IScrumTeamLock>(() => target.CreateScrumTeam("test", "master"));

            Assert.IsFalse(task.IsCompleted);
            Thread.Sleep(50);
            Assert.IsFalse(task.IsCompleted);
            target.SetTeamsInitializingList(Enumerable.Empty <string>());
            Assert.IsTrue(task.Wait(1000));

            // Verify
            Assert.IsNotNull(task.Result);
        }
Пример #12
0
        public void ObservableMessages_TeamCreated_ScrumTeamCreatedMessage()
        {
            // Arrange
            var target = new AzurePlanningPokerController();

            target.EndInitialization();
            var messages = new List <ScrumTeamMessage>();

            // Act
            target.ObservableMessages.Subscribe(m => messages.Add(m));
            target.CreateScrumTeam("test", "master");
            target.Dispose();

            // Verify
            Assert.AreEqual <int>(1, messages.Count);
            Assert.AreEqual <MessageType>(MessageType.TeamCreated, messages[0].MessageType);
            Assert.AreEqual <string>("test", messages[0].TeamName);
        }
Пример #13
0
        public void GetScrumTeam_TeamIsNotInitialized_WaitForTeamInitialization()
        {
            // Arrange
            var target = new AzurePlanningPokerController();

            target.SetTeamsInitializingList(new string[] { "test team", "team2" });

            // Act
            var task = Task.Factory.StartNew <IScrumTeamLock>(() => target.GetScrumTeam("test team"));

            Assert.IsFalse(task.IsCompleted);
            Thread.Sleep(50);
            Assert.IsFalse(task.IsCompleted);
            target.InitializeScrumTeam(new ScrumTeam("test team"));
            Assert.IsTrue(task.Wait(1000));

            // Verify
            Assert.IsNotNull(task.Result);
        }
Пример #14
0
        public void GetScrumTeam_AfterInitialization_GetsExistingTeam()
        {
            // Arrange
            var target = new AzurePlanningPokerController();

            target.EndInitialization();
            ScrumTeam team;

            using (var teamLock = target.CreateScrumTeam("test team", "master"))
            {
                team = teamLock.Team;
            }

            // Act
            var result = target.GetScrumTeam("test team");

            // Verify
            Assert.AreEqual <ScrumTeam>(team, result.Team);
        }