public void TestInitialize() { mockCommentRepo = new Mock <IRepository <Comment> >(); mockEncounterRepo = new Mock <IRepository <Encounter> >(); mockSportRepo = new Mock <IRepository <Sport> >(); mockTeamRepo = new Mock <IRepository <Team> >(); mockUserRepo = new Mock <IRepository <User> >(); encounterBL = new EncounterBusinessLogic(mockEncounterRepo.Object, NO_BUSINESS_LOGIC); sportBL = new SportBusinessLogic(mockSportRepo.Object); teamBL = new TeamBusinessLogic(mockTeamRepo.Object, sportBL); userBL = new UserBusinessLogic(mockUserRepo.Object, teamBL, NO_UT_REPOSITORY); commentBL = new CommentBusinessLogic(mockCommentRepo.Object, encounterBL, userBL); commentList = new List <Comment>(); user = new User() { Id = 1 }; var nacional = new Team() { Id = 1, Name = "Nacional", SportId = 1 }; var eNacional = new EncountersTeams() { Team = nacional, TeamId = nacional.Id }; var peñarol = new Team() { Id = 2, Name = "Peñarol", SportId = 1 }; var ePeñarol = new EncountersTeams() { Team = peñarol, TeamId = peñarol.Id }; ICollection <EncountersTeams> teams = new List <EncountersTeams>() { eNacional, ePeñarol }; var sport = new Sport() { Id = 1, Name = "Futbol" }; encounter = new Encounter() { Id = 1, Date = DateTime.Now, SportId = sport.Id, Teams = teams }; encounterList = new List <Encounter>() { encounter }; mockCommentRepo.Setup(r => r.Get(null, null, "")).Returns(commentList); }
public ICollection <Encounter> GenerateFixture(IEnumerable <Team> teams, DateTime date) { if (teams.Count() < 2) { throw new NotEnoughTeamsForEncounterException("Not enough teams to create round robin encounters."); } DateTime newDate = date.AddDays(1); List <Team> teamList = teams.ToList(); ICollection <Encounter> encounters = new List <Encounter>(); foreach (Team team in teams) { teamList.Remove(team); EncountersTeams eTeam = new EncountersTeams() { Team = team, TeamId = team.Id }; foreach (Team rival in teamList) { EncountersTeams eRival = new EncountersTeams() { Team = rival, TeamId = rival.Id }; ICollection <EncountersTeams> opponents = new List <EncountersTeams>() { eTeam, eRival }; Encounter encounter = new Encounter() { Teams = opponents, SportId = team.SportId, Date = date }; while (encounterBL.TeamsHaveEncountersOnTheSameDay(encounter) || encounterBL.TeamsHaveEncountersOnTheSameDay(encounters, encounter)) { encounter.Date = encounter.Date.AddDays(1); } encounters.Add(encounter); Encounter encounter2 = new Encounter() { Teams = opponents, SportId = team.SportId, Date = date }; while (encounterBL.TeamsHaveEncountersOnTheSameDay(encounter2) || encounterBL.TeamsHaveEncountersOnTheSameDay(encounters, encounter2)) { encounter2.Date = encounter2.Date.AddDays(1); } encounters.Add(encounter2); } } return(encounters); }
public void GenerateFixtureWithEncountersOnRepoTest() { DateTime date = new DateTime(2018, 10, 1, 12, 00, 00); EncountersTeams etNacional = new EncountersTeams { Team = nacional, TeamId = nacional.Id }; EncountersTeams etPeñarol = new EncountersTeams { Team = peñarol, TeamId = peñarol.Id }; encounterBL.Add(new Encounter { Id = 1, Teams = { etNacional, etPeñarol }, Date = date, SportId = 1 }); ICollection <Encounter> generatedEncounters = roundRobin.GenerateFixture(teamList, date); List <Encounter> encountersToList = generatedEncounters.ToList(); //Sabemos que el primer partido va a ser Nacional Peñarol porque ya esta en el repositorio //entonces la fecha del primer encuentro generado por el algoritmo debe ser un dia mas. Assert.IsTrue(generatedEncounters.ElementAt(0).Date == new DateTime(2018, 10, 2, 12, 00, 00)); }
public void TestInitialize() { mockEncounterRepo = new Mock <IRepository <Encounter> >(); mockSportRepo = new Mock <IRepository <Sport> >(); sportBL = new SportBusinessLogic(mockSportRepo.Object); mockSportBL = new Mock <ISportBusinessLogic>(); encounterBL = new EncounterBusinessLogic(mockEncounterRepo.Object, mockSportBL.Object); encounterList = new List <Encounter>(); mockEncounterRepo.Setup(r => r.Get(null, null, It.IsAny <string>())).Returns(encounterList); mockEncounterRepo.Setup(r => r.Get(It.IsAny <Expression <Func <Encounter, bool> > >(), null, It.IsAny <string>())).Returns(encounterList); football = new Sport() { Id = 1, Name = "Football", EncounterMode = EncounterMode.Double }; mockSportBL.Setup(s => s.GetById(1)).Returns(football); basketball = new Sport() { Id = 2, Name = "Basketball", EncounterMode = EncounterMode.Double }; mockSportBL.Setup(s => s.GetById(2)).Returns(basketball); nacional = new Team() { Id = 1, Name = "Nacional", SportId = 1 }; eNacional = new EncountersTeams() { Team = nacional, TeamId = nacional.Id }; peñarol = new Team() { Id = 2, Name = "Peñarol", SportId = 1 }; ePeñarol = new EncountersTeams() { Team = peñarol, TeamId = peñarol.Id }; cerro = new Team() { Id = 3, Name = "Cerro", SportId = 1 }; eCerro = new EncountersTeams() { Team = cerro, TeamId = cerro.Id }; defensor = new Team { Id = 4, Name = "Defensor", SportId = 1 }; eDefensor = new EncountersTeams() { Team = defensor, TeamId = defensor.Id }; danubio = new Team { Id = 5, Name = "Danubio", SportId = 1 }; eDanubio = new EncountersTeams() { Team = danubio, TeamId = danubio.Id }; var teamList = new List <Team>() { nacional, peñarol, defensor, danubio, cerro }; footballWithTeams = new Sport() { Id = 3, Name = "Football", EncounterMode = EncounterMode.Double, Teams = teamList }; mockSportBL.Setup(s => s.GetById(3)).Returns(footballWithTeams); aguada = new Team() { Id = 6, Name = "Aguada", SportId = 2 }; eAguada = new EncountersTeams() { Team = aguada, TeamId = aguada.Id }; golf = new Sport() { Id = 4, Name = "Golf", EncounterMode = EncounterMode.Multiple }; mockSportBL.Setup(s => s.GetById(4)).Returns(golf); golfTeam1 = new Team() { Id = 7, Name = "golfTeam1", SportId = 4 }; eGolfTeam1 = new EncountersTeams() { Team = golfTeam1, TeamId = golfTeam1.Id }; golfTeam2 = new Team { Id = 8, Name = "golfTeam2", SportId = 4 }; eGolfTeam2 = new EncountersTeams() { Team = golfTeam2, TeamId = golfTeam2.Id }; golfTeam3 = new Team { Id = 9, Name = "golfTeam3", SportId = 4 }; eGolfTeam3 = new EncountersTeams() { Team = golfTeam3, TeamId = golfTeam3.Id }; }
public void TestInitialize() { mockSportBL = new Mock <ISportBusinessLogic>(); mockEncounterBL = new Mock <IEncounterBusinessLogic>(); positionTableCalculator = new PositionTableCalculator(mockSportBL.Object, mockEncounterBL.Object); encounterList = new List <Encounter>(); football = new Sport() { Id = 1, Name = "Football", EncounterMode = EncounterMode.Double }; nacional = new Team() { Id = 1, Name = "Nacional", SportId = 1 }; eNacional = new EncountersTeams() { Team = nacional, TeamId = nacional.Id }; peñarol = new Team() { Id = 2, Name = "Peñarol", SportId = 1 }; ePeñarol = new EncountersTeams() { Team = peñarol, TeamId = peñarol.Id }; cerro = new Team() { Id = 3, Name = "Cerro", SportId = 1 }; eCerro = new EncountersTeams() { Team = cerro, TeamId = cerro.Id }; defensor = new Team { Id = 4, Name = "Defensor", SportId = 1 }; danubio = new Team { Id = 5, Name = "Danubio", SportId = 1 }; football.Teams = new List <Team>() { nacional, cerro }; golf = new Sport() { Id = 2, Name = "Golf", EncounterMode = EncounterMode.Multiple }; mockSportBL.Setup(s => s.GetById(4)).Returns(golf); golfTeam1 = new Team() { Id = 7, Name = "golfTeam1", SportId = 4 }; eGolfTeam1 = new EncountersTeams() { Team = golfTeam1, TeamId = golfTeam1.Id }; golfTeam2 = new Team { Id = 8, Name = "golfTeam2", SportId = 4 }; eGolfTeam2 = new EncountersTeams() { Team = golfTeam2, TeamId = golfTeam2.Id }; golfTeam3 = new Team { Id = 9, Name = "golfTeam3", SportId = 4 }; eGolfTeam3 = new EncountersTeams() { Team = golfTeam3, TeamId = golfTeam3.Id }; golfTeam4 = new Team { Id = 10, Name = "golfTeam4", SportId = 4 }; eGolfTeam4 = new EncountersTeams() { Team = golfTeam4, TeamId = golfTeam4.Id }; golf.Teams = new List <Team>() { golfTeam1, golfTeam2, golfTeam3, golfTeam4 }; mockSportBL.Setup(s => s.GetById(1)).Returns(football); mockSportBL.Setup(s => s.GetById(2)).Returns(golf); }