예제 #1
0
        public void NewTag_OneExternalTagButtonSelected_ExternalTagAdded()
        {
            // Arrange

            TagButtonVM t1 = new TagButtonVM {
                Model = new TagButton {
                    Tag = new Tag("x", "a")
                }, Active = true
            };

            project.Dashboard.ViewModels.Add(t1);

            var newTagEvent = new NewTagEvent {
                EventType = project.Model.EventTypes [0],
                Start     = new Time(0),
                Stop      = new Time(10),
                Tags      = new List <Tag> (),
                EventTime = new Time(9),
                Button    = null
            };

            // Act
            App.Current.EventsBroker.Publish(newTagEvent);

            project.Dashboard.ViewModels.Remove(t1);

            // Assert
            Assert.AreEqual("a", sentTimelineEvent.Tags [0].Group);
            Assert.AreEqual(1, sentTimelineEvent.Tags.Count());
        }
예제 #2
0
        void HandleNewTagEvent(NewTagEvent e)
        {
            if (project == null)
            {
                return;
            }

            var eventVM = CreateTimelineEventVM(e.EventType, e.Start, e.Stop, e.EventTime, null);

            eventVM.Model.Tags.AddRange(e.Tags);

            // add selected tag buttons
            eventVM.Model.Tags.AddRange(project.Dashboard.ViewModels.OfType <TagButtonVM> ().Where(x => x.Active).Select(x => x.Tag.Model));

            AddPlayersToEvent(eventVM);
            AddTeamsToEvent(eventVM);

            App.Current.EventsBroker.Publish(
                new NewDashboardEvent {
                TimelineEvent    = eventVM,
                DashboardButton  = e.Button,
                Edit             = !project.Dashboard.DisablePopupWindow,
                DashboardButtons = null,
            }
                );
            Reset();
        }
예제 #3
0
        public void TestHandleResetWhenAPlayerIsLocked()
        {
            // Arrange
            player1.Tagged = true;
            player2.Locked = true;
            player2.Tagged = true;
            player3.Tagged = true;

            var newTagEvent = new NewTagEvent {
                EventType = new EventType {
                    Name = "test"
                },
                Start     = new Time(0),
                Stop      = new Time(10),
                Tags      = new List <Tag> (),
                EventTime = new Time(9),
                Button    = null
            };

            // Action
            App.Current.EventsBroker.Publish(newTagEvent);

            // Assert
            Assert.IsFalse(player1.Tagged, "Player 1 should not be tagged");
            Assert.IsTrue(player2.Locked, "Player 2 should be locked");
            Assert.IsTrue(player2.Tagged, "Player 2 should be tagged");
            Assert.IsFalse(player3.Tagged, "Player 3 should not be tagged");
        }
예제 #4
0
 void HandleAction(NewTagEvent obj)
 {
     if (answer != null)
     {
         answer(this, new EventArgs());
     }
 }
예제 #5
0
        public void TestNewTagEvent()
        {
            var newTagEvent = new NewTagEvent {
                EventType = project.Model.EventTypes [0],
                Start     = new Time(0),
                Stop      = new Time(10),
                Tags      = new List <Tag> (),
                EventTime = new Time(9),
                Button    = null
            };

            // Action
            App.Current.EventsBroker.Publish(newTagEvent);

            Assert.AreEqual(new Time(9).MSeconds, sentTimelineEvent.EventTime.MSeconds);
            Assert.IsTrue(hasSentDashboardEvent);
        }
예제 #6
0
        public void TestNewTagEventWithTeam()
        {
            team1.Tagged = true;

            var newTagEvent = new NewTagEvent {
                EventType = project.Model.EventTypes [0],
                Start     = new Time(0),
                Stop      = new Time(10),
                Tags      = new List <Tag> (),
                EventTime = new Time(9),
                Button    = null
            };

            // Action
            App.Current.EventsBroker.Publish(newTagEvent);

            Assert.AreEqual(1, sentTimelineEvent.Teams.Count);
            Assert.AreSame(team1.Model, sentTimelineEvent.Teams.First());
        }
예제 #7
0
        public void TestNewTagEventWithPlayers()
        {
            player1.Tagged = true;
            player3.Tagged = true;

            var newTagEvent = new NewTagEvent {
                EventType = project.Model.EventTypes [0],
                Start     = new Time(0),
                Stop      = new Time(10),
                Tags      = new List <Tag> (),
                EventTime = new Time(9),
                Button    = null
            };

            // Action
            App.Current.EventsBroker.Publish(newTagEvent);

            Assert.AreEqual(new Time(9).MSeconds, sentTimelineEvent.EventTime.MSeconds);
            Assert.AreEqual(2, sentTimelineEvent.Players.Count);
        }