public void TestIsChanged() { LMTeam t = LMTeam.DefaultTemplate(10); Assert.IsTrue(t.IsChanged); t.IsChanged = false; t.List.Remove(t.Players [0]); Assert.IsTrue(t.IsChanged); t.IsChanged = false; t.List.Add(new LMPlayer()); Assert.IsTrue(t.IsChanged); t.IsChanged = false; t.FormationStr = "1-2"; Assert.IsTrue(t.IsChanged); t.IsChanged = false; t.Colors = null; Assert.IsTrue(t.IsChanged); t.IsChanged = false; t.Shield = new Image(10, 10); Assert.IsTrue(t.IsChanged); t.IsChanged = false; t.TeamName = "new"; Assert.IsTrue(t.IsChanged); t.IsChanged = false; t.Name = "new"; Assert.IsTrue(t.IsChanged); t.IsChanged = false; }
public void TestRemovePlayers() { LMTeam t = LMTeam.DefaultTemplate(15); t.FormationStr = "1-2-3-4"; /* Removing a player from the starting list must be swapped * with the first player in the bench to keep the same lineup */ t.RemovePlayers(new List <LMPlayer> { t.Players [0] }, false); Assert.AreEqual(15, t.Players.Count); Assert.AreEqual(11, t.Players [0].Number); Assert.AreEqual(2, t.Players [1].Number); Assert.AreEqual(1, t.Players [14].Number); t.RemovePlayers(new List <LMPlayer> { t.Players [0] }, true); Assert.AreEqual(14, t.Players.Count); Assert.AreEqual(12, t.Players [0].Number); t.RemovePlayers(new List <LMPlayer> { new LMPlayer() }, true); Assert.AreEqual(14, t.Players.Count); t.RemovePlayers(new List <LMPlayer> { new LMPlayer(), t.Players [12] }, true); Assert.AreEqual(13, t.Players.Count); }
public void TestIsChangedResetted() { LMTeam t, t1; ObjectChangedParser parser; List <IStorable> storables = null, changed = null; StorableNode parent = null; parser = new ObjectChangedParser(); t = LMTeam.DefaultTemplate(10); storage.Store(t); // After loading an object t1 = DocumentsSerializer.LoadObject(typeof(LMTeam), t.ID, db) as LMTeam; Assert.IsTrue(parser.ParseInternal(out parent, t1, Serializer.JsonSettings)); Assert.IsTrue(parent.ParseTree(ref storables, ref changed)); Assert.AreEqual(0, changed.Count); Assert.NotNull(t1.DocumentID); // After filling an object t1 = new LMTeam(); t1.ID = t.ID; t1.DocumentID = t.ID.ToString(); t1.IsChanged = true; DocumentsSerializer.FillObject(t1, db); Assert.IsTrue(parser.ParseInternal(out parent, t1, Serializer.JsonSettings)); Assert.IsTrue(parent.ParseTree(ref storables, ref changed)); Assert.AreEqual(0, changed.Count); }
public void TestStartingPlayers() { LMTeam t = LMTeam.DefaultTemplate(15); t.FormationStr = "1-2-3-4"; Assert.AreEqual(10, t.StartingPlayers); Assert.AreEqual(10, t.StartingPlayersList.Count); Assert.AreEqual(t.Players [0], t.StartingPlayersList [0]); Assert.AreEqual(t.Players [9], t.StartingPlayersList [9]); /* Players not playing are skipped */ t.Players [0].Playing = false; Assert.AreEqual(t.Players [1], t.StartingPlayersList [0]); Assert.AreEqual(t.Players [10], t.StartingPlayersList [9]); /* Unless we are editing the team */ t.TemplateEditorMode = true; Assert.AreEqual(t.Players [0], t.StartingPlayersList [0]); Assert.AreEqual(t.Players [9], t.StartingPlayersList [9]); t.TemplateEditorMode = false; /* If the list of playing players is smaller than the formation * the list of starting players is of the same size as the list * of playing players */ for (int i = 0; i < 8; i++) { t.Players [i].Playing = false; } Assert.AreEqual(7, t.StartingPlayersList.Count); Assert.AreEqual(t.Players [8], t.StartingPlayersList [0]); }
public void TestListTeams() { LMTeam t = LMTeam.DefaultTemplate(5); t.Name = "Team1"; t.Shield = Utils.LoadImageFromFile(); storage.Store(t); List <Team> teams = storage.RetrieveAll <Team> ().ToList(); Assert.AreEqual(1, teams.Count); Assert.AreEqual(t.ID, teams [0].ID); Assert.AreEqual(t.Name, teams [0].Name); Assert.IsNotNull(teams [0].Shield); Assert.IsTrue(teams.All(i => i.DocumentID != null)); for (int i = 0; i < 5; i++) { var te = LMTeam.DefaultTemplate(5); te.Name = "Team" + (i + 2); storage.Store(te); } Assert.AreEqual(6, storage.RetrieveAll <Team> ().Count()); }
public void TestProject() { LMProject p = new LMProject(); p.Dashboard = LMDashboard.DefaultTemplate(10); p.UpdateEventTypesAndTimers(); p.LocalTeamTemplate = LMTeam.DefaultTemplate(10); p.VisitorTeamTemplate = LMTeam.DefaultTemplate(12); MediaFile mf = new MediaFile("path", 34000, 25, true, true, "mp4", "h264", "aac", 320, 240, 1.3, null, "Test asset"); var pd = new ProjectDescription(); pd.FileSet = new MediaFileSet(); pd.FileSet.Add(mf); p.Description = pd; p.AddEvent(new LMTimelineEvent()); storage.Store <LMProject> (p); Assert.AreEqual(45, db.DocumentCount); p = storage.RetrieveAll <LMProject> ().First(); Assert.IsNotNull(p.DocumentID); p.Load(); Assert.IsTrue(Object.ReferenceEquals(p.Description.FileSet, p.Timeline [0].FileSet)); storage.Store(p); Assert.AreEqual(45, db.DocumentCount); storage.Delete(p); Assert.AreEqual(1, db.DocumentCount); }
public void TestCopyOverwrite() { TemplatesService ts = new TemplatesService(storage); ts.Start(); ITeamTemplatesProvider teamtemplateprovider = ts.TeamTemplateProvider; LMTeam teamB = LMTeam.DefaultTemplate(5); teamB.Name = "B"; teamB.TeamName = "Template B"; teamB.FormationStr = "1-4"; teamB.List [0].Name = "Paco"; teamtemplateprovider.Save(teamB); LMTeam teamA = new LMTeam(); teamA.Name = "A"; teamA.TeamName = "Template A"; teamA.FormationStr = "1-4-3-3"; teamtemplateprovider.Save(teamA); LMTeam auxdelete = teamA; teamtemplateprovider.Copy(teamB, "A"); teamtemplateprovider.Delete(auxdelete); teamA = teamtemplateprovider.Templates [0] as LMTeam; Assert.AreEqual(4, teamtemplateprovider.Templates.Count); Assert.AreEqual("A", teamA.Name); Assert.AreEqual("Template B", teamA.TeamName); Assert.AreEqual(teamB.List.Count, teamA.List.Count); Assert.AreEqual("1-4", teamA.FormationStr); Assert.AreEqual("Paco", teamA.List [0].Name); }
public void TestDeleteProjectItems() { LMProject p = new LMProject(); p.Dashboard = LMDashboard.DefaultTemplate(10); p.UpdateEventTypesAndTimers(); p.LocalTeamTemplate = LMTeam.DefaultTemplate(10); for (int i = 0; i < 10; i++) { LMTimelineEvent evt = new LMTimelineEvent { EventType = p.EventTypes [i], Start = new Time(1000), Stop = new Time(2000), }; p.Timeline.Add(evt); } storage.Store(p); p = storage.Retrieve <LMProject> (p.ID); // Removing this object should not remove the EvenType from the database, which might be referenced by // LMTimelineEvent's in the timeline EventType evtType = (p.Dashboard.List [0] as AnalysisEventButton).EventType; p.Dashboard.List.Remove(p.Dashboard.List [0]); storage.Store(p); Assert.DoesNotThrow(() => storage.Retrieve <LMProject> (p.ID)); // Delete an event with a LMPlayer, a Team and an EventType, it should delete only the timeline event p.Timeline [0].Teams.Add(p.LocalTeamTemplate); p.Timeline [0].Players.Add(p.LocalTeamTemplate.List [0]); p.Timeline.Remove(p.Timeline [0]); Assert.DoesNotThrow(() => storage.Retrieve <LMProject> (p.ID)); }
LMProject CreateProject(bool fill = true) { LMProject p = new LMProject(); p.Dashboard = LMDashboard.DefaultTemplate(10); p.UpdateEventTypesAndTimers(); p.LocalTeamTemplate = LMTeam.DefaultTemplate(10); p.VisitorTeamTemplate = LMTeam.DefaultTemplate(12); MediaFile mf = new MediaFile("path", 34000, 25, true, true, "mp4", "h264", "aac", 320, 240, 1.3, null, "Test asset"); var pd = new ProjectDescription(); pd.FileSet = new MediaFileSet(); pd.FileSet.Add(mf); p.Description = pd; if (fill) { p.AddEvent(p.EventTypes [0], new Time(1000), new Time(2000), null, null); p.AddEvent(p.EventTypes [0], new Time(1000), new Time(2000), null, null); p.AddEvent(p.EventTypes [1], new Time(1000), new Time(2000), null, null); p.AddEvent(p.EventTypes [2], new Time(1000), new Time(2000), null, null); p.AddEvent(p.EventTypes [2], new Time(1000), new Time(2000), null, null); p.AddEvent(p.EventTypes [2], new Time(1000), new Time(2000), null, null); p.AddEvent(p.EventTypes [6], new Time(1000), new Time(2000), null, null); } return(p); }
public void TestCreateDefaultTemplate() { LMTeam t = LMTeam.DefaultTemplate(10); Assert.AreEqual(t.Players.Count, 10); t.AddDefaultItem(8); Assert.AreEqual(t.Players.Count, 11); }
//Specific LongoMatch objects public static LMProject CreateProject(bool withEvents = true) { LMTimelineEvent pl; LMProject p = new LMProject(); p.Dashboard = LMDashboard.DefaultTemplate(10); p.LocalTeamTemplate = LMTeam.DefaultTemplate(5); p.LocalTeamTemplate.FormationStr = "2-2"; p.VisitorTeamTemplate = LMTeam.DefaultTemplate(5); p.VisitorTeamTemplate.FormationStr = "2-2"; var pd = new ProjectDescription(); pd.FileSet = new MediaFileSet(); pd.FileSet.Add(new MediaFile(Path.GetTempFileName(), 34000, 25, true, true, "mp4", "h264", "aac", 320, 240, 1.3, null, "Test asset 1")); pd.FileSet.Add(new MediaFile(Path.GetTempFileName(), 34000, 25, true, true, "mp4", "h264", "aac", 320, 240, 1.3, null, "Test asset 2")); p.Description = pd; p.UpdateEventTypesAndTimers(); if (withEvents) { AnalysisEventButton b = p.Dashboard.List [0] as AnalysisEventButton; /* No tags, no players */ pl = new LMTimelineEvent { EventType = b.EventType, Start = new Time(0), Stop = new Time(100), FileSet = pd.FileSet }; p.Timeline.Add(pl); /* tags, but no players */ b = p.Dashboard.List [1] as AnalysisEventButton; pl = new LMTimelineEvent { EventType = b.EventType, Start = new Time(0), Stop = new Time(100), FileSet = pd.FileSet }; pl.Tags.Add(b.AnalysisEventType.Tags [0]); p.Timeline.Add(pl); /* tags and players */ b = p.Dashboard.List [2] as AnalysisEventButton; pl = new LMTimelineEvent { EventType = b.EventType, Start = new Time(0), Stop = new Time(100), FileSet = pd.FileSet }; pl.Tags.Add(b.AnalysisEventType.Tags [1]); pl.Players.Add(p.LocalTeamTemplate.List [0]); p.Timeline.Add(pl); } return(p); }
public void TestResetPlayers() { LMTeam t = LMTeam.DefaultTemplate(10); for (int i = 0; i < 5; i++) { t.Players [0].Playing = false; } t.ResetPlayers(); Assert.IsEmpty(t.Players.Where(p => !p.Playing)); }
public void TestBenchPlayers() { LMTeam t = LMTeam.DefaultTemplate(15); t.FormationStr = "1-2-3-4"; Assert.AreEqual(5, t.BenchPlayersList.Count); Assert.AreEqual(t.Players [10], t.BenchPlayersList [0]); Assert.AreEqual(t.Players [14], t.BenchPlayersList [4]); t.FormationStr = "10-2-3-4"; Assert.AreEqual(0, t.BenchPlayersList.Count); }
public void SetUp() { controller = new LMTeamEditorController(); var teamsManager = new TeamsManagerVM(); teamsManager.LoadedTemplate.Model = LMTeam.DefaultTemplate(5); viewModel = teamsManager.TeamEditor; controller.SetViewModel(teamsManager); controller.Start(); }
public void TestAddTeam() { service.Start(); LMTeam team = LMTeam.DefaultTemplate(1); string outPath = Path.Combine(tmpDir, "test" + Constants.TEAMS_TEMPLATE_EXT); App.Current.DependencyRegistry.Retrieve <IFileStorage> (InstanceType.Default, null).StoreAt(team, outPath); monitor.AddFile(outPath); teamsProviderMock.Verify(s => s.Add(team), Times.Once()); Assert.IsFalse(File.Exists(outPath)); service.Stop(); }
public void TestCopy() { LMTeam team = LMTeam.DefaultTemplate(10); LMTeam copy = (LMTeam)team.Copy("newName"); Assert.AreNotEqual(team.ID, copy.ID); for (int i = 0; i < team.List.Count; i++) { Assert.AreNotEqual(team.List [i].ID, copy.List [i].ID); } Assert.AreEqual("newName", copy.Name); Assert.AreNotEqual(team.Name, copy.Name); }
public void TestTeam() { LMTeam team1 = LMTeam.DefaultTemplate(10); storage.Store <LMTeam> (team1); Assert.AreEqual(12, db.DocumentCount); LMTeam team2 = storage.Retrieve <LMTeam> (team1.ID); Assert.AreEqual(team1.ID, team2.ID); Assert.AreEqual(team1.List.Count, team2.List.Count); Assert.IsNotNull(team2.DocumentID); storage.Delete(team1); Assert.AreEqual(1, db.DocumentCount); }
public void OneTimeSetUp() { SetupClass.SetUp(); Mock <IGUIToolkit> mockGuiToolkit = new Mock <IGUIToolkit> (); mockGuiToolkit.Setup(m => m.DeviceScaleFactor).Returns(1); App.Current.GUIToolkit = mockGuiToolkit.Object; eventsFilterController = new LMEventsFilterController(); homeTeam = new LMTeamVM { Model = LMTeam.DefaultTemplate(2) }; awayTeam = new LMTeamVM { Model = LMTeam.DefaultTemplate(3) }; }
public void TestLoadTeam() { LMTeam t = LMTeam.DefaultTemplate(5); t.Name = "Team1"; t.Shield = Utils.LoadImageFromFile(); storage.Store(t); Team t1 = storage.Retrieve <Team> (new QueryFilter()).First(); t1.IsLoaded = true; Utils.AreEquals(t, t1, false); t1.IsLoaded = false; Utils.AreEquals(t, t1); Assert.IsNotNull(t1.DocumentID); }
public void TestCreateDefaultTemplate() { // Arrrange mockPreview.Setup(p => p.CreatePreview(It.IsAny <LMTeam> ())).Returns(new Image(1, 1)); // Act LMTeam t = LMTeam.DefaultTemplate(10); // Assert Assert.IsNull(t.Shield); Assert.IsNotNull(t.Preview); Assert.AreEqual(t.Players.Count, 10); t.AddDefaultItem(8); Assert.AreEqual(t.Players.Count, 11); }
public void TestFormation() { LMTeam t = LMTeam.DefaultTemplate(1); t.FormationStr = "1-2-3-4"; Assert.AreEqual(t.Formation.Length, 4); Assert.AreEqual(t.Formation [0], 1); Assert.AreEqual(t.Formation [1], 2); Assert.AreEqual(t.Formation [2], 3); Assert.AreEqual(t.Formation [3], 4); Assert.Throws <FormatException> ( delegate { t.FormationStr = "1;as"; }); }
public void CreateTeamPreview_ModelAvailable_ViewWellFilledForPreview() { // Arrange LMTeam team = LMTeam.DefaultTemplate(6); team.FormationStr = "1-2-1"; mockDrawingToolkit.Setup(d => d.Copy(It.IsAny <ICanvas> (), It.IsAny <Area> ())).Returns(new Image(1, 1)); // Act Image result = previewService.CreatePreview(team); // Assert Assert.IsNotNull(result); mockDrawingToolkit.Verify(d => d.Copy(It.Is <LMTeamTaggerView> (view => ValidateTaggerView(view)), It.IsAny <Area> ()), Times.Exactly(4)); }
public void TestSaveProjectWithEvents() { LMProject p = new LMProject(); p.Dashboard = LMDashboard.DefaultTemplate(10); p.UpdateEventTypesAndTimers(); p.LocalTeamTemplate = LMTeam.DefaultTemplate(10); p.VisitorTeamTemplate = LMTeam.DefaultTemplate(12); MediaFile mf = new MediaFile("path", 34000, 25, true, true, "mp4", "h264", "aac", 320, 240, 1.3, null, "Test asset"); var pd = new ProjectDescription(); pd.FileSet = new MediaFileSet(); pd.FileSet.Add(mf); p.Description = pd; for (int i = 0; i < 10; i++) { LMTimelineEvent evt = new LMTimelineEvent { EventType = p.EventTypes [i], Start = new Time(1000), Stop = new Time(2000), }; evt.Players.Add(p.LocalTeamTemplate.Players [0]); p.Timeline.Add(evt); } storage.Store <LMProject> (p); Assert.AreEqual(54, db.DocumentCount); storage.Store <LMProject> (p); Assert.AreEqual(54, db.DocumentCount); LMProject p2 = storage.Retrieve <LMProject> (p.ID); Assert.AreEqual(p.Timeline.Count, p2.Timeline.Count); Assert.AreEqual(p2.LocalTeamTemplate.List [0], p2.Timeline [0].Players [0]); Assert.AreEqual((p2.Dashboard.List [0] as AnalysisEventButton).EventType, p2.Timeline [0].EventType); Assert.IsNotNull(p2.DocumentID); storage.Delete(p); Assert.AreEqual(1, db.DocumentCount); }
public void TestQueryTeams() { IEnumerable <Team> teams; for (int i = 0; i < 5; i++) { var da = LMTeam.DefaultTemplate(5); da.Name = "Team" + (i + 1); storage.Store(da); } QueryFilter filter = new QueryFilter(); filter.Add("Name", "Team1"); teams = storage.Retrieve <Team> (filter); Assert.AreEqual(1, teams.Count()); Assert.AreEqual("Team1", teams.First().Name); filter.Add("Name", "Team1", "Team3"); teams = storage.Retrieve <Team> (filter); Assert.AreEqual(2, teams.Count()); Assert.IsTrue(teams.Any(d => d.Name == "Team1")); Assert.IsTrue(teams.Any(d => d.Name == "Team3")); filter = new QueryFilter(); filter.Add("Name", "Pepe"); teams = storage.Retrieve <Team> (filter); Assert.AreEqual(0, teams.Count()); filter = new QueryFilter(); filter.Add("Unkown", "Pepe"); Assert.Throws <InvalidQueryException> ( delegate { teams = storage.Retrieve <Team> (filter).ToList(); }); Assert.AreEqual(0, teams.Count()); }
async Task SetUpState() { dynamic data = new ExpandoObject(); var projectVM = new LMProjectVM { Model = new LMProject() }; projectVM.Model.LocalTeamTemplate = LMTeam.DefaultTemplate(10); projectVM.Model.VisitorTeamTemplate = LMTeam.DefaultTemplate(10); data.project = projectVM; data.settings = new PlayEventEditionSettings(); data.play = new LMTimelineEventVM { Model = new LMTimelineEvent { Name = "Event1" } }; await state.LoadState(data); await state.ShowState(); viewModel = state.ViewModel; }
//Specific LongoMatch objects public static LMProject CreateProject(bool withEvents = true, bool withLineupEvent = false) { LMTimelineEvent pl; LMProject p = new LMProject(); p.Dashboard = LMDashboard.DefaultTemplate(10); p.LocalTeamTemplate = LMTeam.DefaultTemplate(5); p.LocalTeamTemplate.FormationStr = "2-2"; p.VisitorTeamTemplate = LMTeam.DefaultTemplate(5); p.VisitorTeamTemplate.FormationStr = "2-2"; var pd = new ProjectDescription(); pd.FileSet = new MediaFileSet(); pd.FileSet.Add(new MediaFile(Path.GetTempFileName(), 34000, 25, true, true, "mp4", "h264", "aac", 320, 240, 1.3, null, "Test asset 1")); pd.FileSet.Add(new MediaFile(Path.GetTempFileName(), 34000, 25, true, true, "mp4", "h264", "aac", 320, 240, 1.3, null, "Test asset 2")); p.Description = pd; p.Periods.Replace(new RangeObservableCollection <Period> { new Period { Name = "First Period", Nodes = new RangeObservableCollection <TimeNode> { new TimeNode { Start = new Time(10), Stop = new Time(50) } } }, new Period { Name = "Second Period", Nodes = new RangeObservableCollection <TimeNode> { new TimeNode { Start = new Time(50), Stop = new Time(90) } } }, }); p.UpdateEventTypesAndTimers(); if (withLineupEvent) { p.CreateLineupEvent(); } if (withEvents) { AnalysisEventButton b = p.Dashboard.List [0] as AnalysisEventButton; /* No tags, no players */ pl = new LMTimelineEvent { EventType = b.EventType, Start = new Time(0), Stop = new Time(50), FileSet = pd.FileSet }; p.Timeline.Add(pl); /* tags, but no players */ b = p.Dashboard.List [1] as AnalysisEventButton; pl = new LMTimelineEvent { EventType = b.EventType, Start = new Time(20), Stop = new Time(60), FileSet = pd.FileSet }; pl.Tags.Add(b.AnalysisEventType.Tags [0]); p.Timeline.Add(pl); /* tags and players */ b = p.Dashboard.List [2] as AnalysisEventButton; pl = new LMTimelineEvent { EventType = b.EventType, Start = new Time(70), Stop = new Time(100), FileSet = pd.FileSet }; pl.Tags.Add(b.AnalysisEventType.Tags [1]); pl.Players.Add(p.LocalTeamTemplate.List [0]); p.Timeline.Add(pl); } return(p); }
protected override Team CreateDefaultTemplate(int count) { return(LMTeam.DefaultTemplate(count)); }
public void TestVersion() { Assert.AreEqual(2, new LMTeam().Version); Assert.AreEqual(2, LMTeam.DefaultTemplate(1).Version); }