Esempio n. 1
0
        public void Initialize()
        {
            factory     = new EncounterFactory();
            sport       = new Sport("Soccer", true);
            teamA       = new Mock <Team>(1, "teamA", "photo", sport).Object;
            teamB       = new Mock <Team>(2, "teamB", "photo", sport).Object;
            teamC       = new Mock <Team>(3, "teamC", "photo", sport).Object;
            teamD       = new Mock <Team>(4, "teamD", "photo", sport).Object;
            testFixture = new FixtureDto()
            {
                fixtureName   = "ObligatorioDA2.BusinessLogic.FixtureAlgorithms.OneMatchFixture"
                , initialDate = DateTime.Today, daysBetweenRounds = 5, roundLength = 2
            };
            teamsCollection = GetTeamsList();
            teamsNames      = teamsCollection.Select(tn => tn.Name).ToList();
            SetUpRepository();
            mapper = new EncounterDtoMapper(teamStorage, matchStorage, sportStorage);
            context.Database.EnsureDeleted();
            Mock <IAuthenticationService> auth = new Mock <IAuthenticationService>();

            auth.Setup(a => a.GetConnectedUser()).Returns(GetFakeUser());
            EncounterService service = new EncounterService(matchStorage, teamStorage, sportStorage, auth.Object);

            algorithmPaths = @".\";
            Mock <ILoggerService> logService = new Mock <ILoggerService>();

            fixtureService = new FixtureService(teamStorage, service, auth.Object, logService.Object);
        }
Esempio n. 2
0
        public void ThrowArgumentNullException_WhenTeamWithPassedAwayTeamNameIsNotPresent()
        {
            // arrange
            var fixtureRepo     = new Mock <IEfRepository <Fixture> >();
            var teamsRepo       = new Mock <IEfRepository <Team> >();
            var playersRepo     = new Mock <IEfRepository <Player> >();
            var fixturesFactory = new Mock <IFixturesFactory>();
            var mailService     = new Mock <IFixtureMailService>();

            var teams = new List <Team>()
            {
                new Team()
                {
                    Name = "presentName"
                }
            };

            teamsRepo.Setup(r => r.All).Returns(teams.AsQueryable());

            var fixtureService = new FixtureService(
                fixtureRepo.Object,
                teamsRepo.Object,
                playersRepo.Object,
                fixturesFactory.Object,
                mailService.Object);

            // act and assert
            Assert.Throws <ArgumentNullException>(() => fixtureService.Add("presentName", "notPresentNae", null));
        }
        public void ThrowArgumentNullException_WhenPlayerIdDoesNotTargetExistingPlayer()
        {
            // arrange
            var fixtureRepo     = new Mock <IEfRepository <Fixture> >();
            var teamsRepo       = new Mock <IEfRepository <Team> >();
            var playersRepo     = new Mock <IEfRepository <Player> >();
            var fixturesFactory = new Mock <IFixturesFactory>();
            var mailService     = new Mock <IFixtureMailService>();


            var fixtureId    = Guid.NewGuid();
            var fixtureEvent = FixtureEventType.Goal;
            int minute       = 22;
            var playerId     = Guid.NewGuid();

            var fixtures = new List <Fixture>()
            {
                new Fixture()
                {
                    Id = fixtureId
                }
            }.AsQueryable();

            fixtureRepo.Setup(x => x.All).Returns(fixtures);

            var fixtureService = new FixtureService(
                fixtureRepo.Object,
                teamsRepo.Object,
                playersRepo.Object,
                fixturesFactory.Object,
                mailService.Object);

            // act & assert
            Assert.Throws <ArgumentNullException>(() => fixtureService.AddFixtureEvent(fixtureId, fixtureEvent, minute, playerId));
        }
        public async Task <IActionResult> Index(FixtureService fixtureService, string dateString = "")
        {
            DateTime date;

            if (dateString == "")
            {
                date = DateTime.Now;
            }
            else
            {
                date = DateTime.Parse(dateString.Substring(4, 11));
            }

            System.Diagnostics.Debug.WriteLine(date);

            IEnumerable <FixtureList> fixtureLists = await fixtureService.getDaysFixtures(date);

            FixturesViewModel viewModel = new FixturesViewModel {
                fixtureLists = fixtureLists, date = date
            };

            viewModel.predictionStats = fixtureService.getPredictionStats(new PredictionStats());

            return(View(viewModel));
        }
Esempio n. 5
0
        private async Task DeleteFixture(Guid fixtureId)
        {
            await FixtureService.Delete(fixtureId);

            MessageBox.Show(Messages.FixtureDeleted);
            await LoadFixtureList();
        }
Esempio n. 6
0
 public static void Update()
 {
     using (var db = new PowerLinesContext())
     {
         var fixtureService = new FixtureService(db, new FixtureReader());
         fixtureService.Upload();
     }
 }
        public void AddCorrectFixtureEventToTargetFixturesEvents_WhenPlayerIdAndFixtureIdAreValid()
        {
            // arrange
            var fixtureRepo     = new Mock <IEfRepository <Fixture> >();
            var teamsRepo       = new Mock <IEfRepository <Team> >();
            var playersRepo     = new Mock <IEfRepository <Player> >();
            var fixturesFactory = new Mock <IFixturesFactory>();
            var mailService     = new Mock <IFixtureMailService>();

            var fixtureId        = Guid.NewGuid();
            var fixtureEventType = FixtureEventType.Goal;
            int minute           = 22;
            var playerId         = Guid.NewGuid();

            var players = new List <Player>()
            {
                new Player()
                {
                    Id = playerId
                }
            };

            playersRepo.Setup(pr => pr.All).Returns(players.AsQueryable());

            var fixtures = new List <Fixture>()
            {
                new Fixture()
                {
                    Id            = fixtureId,
                    FixtureEvents = new List <FixtureEvent>(),
                    HomeTeam      = new Team()
                    {
                        Players = players
                    },
                }
            }.AsQueryable();

            fixtureRepo.Setup(x => x.All).Returns(fixtures);

            var fixtureEvent = new FixtureEvent();

            fixturesFactory.Setup(f => f.GetFixtureEvent(fixtureEventType, minute, players[0])).Returns(fixtureEvent);

            var fixtureService = new FixtureService(
                fixtureRepo.Object,
                teamsRepo.Object,
                playersRepo.Object,
                fixturesFactory.Object,
                mailService.Object);

            // act
            fixtureService.AddFixtureEvent(fixtureId, fixtureEventType, minute, playerId);

            // assert
            fixtureRepo.Verify(r => r.Update(It.Is <Fixture>(f => f.FixtureEvents.First() == fixtureEvent)));
        }
        public void CallFixtureFactoriesGetFixtureEventMethodWithCorrectParameters_WhenPlayerIdAndFixtureIdAreValid()
        {
            // arrange
            var fixtureRepo     = new Mock <IEfRepository <Fixture> >();
            var teamsRepo       = new Mock <IEfRepository <Team> >();
            var playersRepo     = new Mock <IEfRepository <Player> >();
            var fixturesFactory = new Mock <IFixturesFactory>();
            var mailService     = new Mock <IFixtureMailService>();

            var fixtureId        = Guid.NewGuid();
            var fixtureEventType = FixtureEventType.Goal;
            int minute           = 22;
            var playerId         = Guid.NewGuid();

            var players = new List <Player>()
            {
                new Player()
                {
                    Id = playerId
                }
            };

            playersRepo.Setup(pr => pr.All).Returns(players.AsQueryable());

            var fixtures = new List <Fixture>()
            {
                new Fixture()
                {
                    Id            = fixtureId,
                    FixtureEvents = new List <FixtureEvent>(),
                    HomeTeam      = new Team()
                    {
                        Players = players
                    },
                }
            }.AsQueryable();

            fixtureRepo.Setup(x => x.All).Returns(fixtures);

            var fixtureEvent = new FixtureEvent();

            fixturesFactory.Setup(f => f.GetFixtureEvent(fixtureEventType, minute, players[0])).Returns(fixtureEvent);

            var fixtureService = new FixtureService(
                fixtureRepo.Object,
                teamsRepo.Object,
                playersRepo.Object,
                fixturesFactory.Object,
                mailService.Object);

            // act
            fixtureService.AddFixtureEvent(fixtureId, fixtureEventType, minute, playerId);

            // assert
            fixturesFactory.Verify(f => f.GetFixtureEvent(fixtureEventType, minute, players[0]), Times.Once);
        }
        public void IncreaseAwayTeamsScoreByOne_WhenPlayerIsNotFoundInHomeTeamsPlayers()
        {
            // arrange
            var fixtureRepo     = new Mock <IEfRepository <Fixture> >();
            var teamsRepo       = new Mock <IEfRepository <Team> >();
            var playersRepo     = new Mock <IEfRepository <Player> >();
            var fixturesFactory = new Mock <IFixturesFactory>();
            var mailService     = new Mock <IFixtureMailService>();

            var fixtureId        = Guid.NewGuid();
            var fixtureEventType = FixtureEventType.Goal;
            int minute           = 22;
            var playerId         = Guid.NewGuid();

            var players = new List <Player>()
            {
                new Player()
                {
                    Id = playerId
                }
            };

            playersRepo.Setup(pr => pr.All).Returns(players.AsQueryable());

            var fixtures = new List <Fixture>()
            {
                new Fixture()
                {
                    Id            = fixtureId,
                    FixtureEvents = new List <FixtureEvent>(),
                    HomeTeam      = new Team()
                    {
                        Players = new List <Player>()
                    },
                }
            }.AsQueryable();

            fixtureRepo.Setup(x => x.All).Returns(fixtures);

            var fixtureEvent = new FixtureEvent();

            fixturesFactory.Setup(f => f.GetFixtureEvent(fixtureEventType, minute, players[0])).Returns(fixtureEvent);

            var fixtureService = new FixtureService(
                fixtureRepo.Object,
                teamsRepo.Object,
                playersRepo.Object,
                fixturesFactory.Object,
                mailService.Object);

            // act
            fixtureService.AddFixtureEvent(fixtureId, fixtureEventType, minute, playerId);

            // assert
            fixtureRepo.Verify(r => r.Update(It.Is <Fixture>(f => f.ScoreAwayTeam == 1)));
        }
        private async Task LoadFixtureList()
        {
            dgvObjectList.Rows.Clear();
            dgvObjectList.Refresh();

            var fixtures = await FixtureService.GetAvailableList();

            fixtures.ForEach(fixtureDto =>
            {
                dgvObjectList.Rows.Add(fixtureDto.Fixture.Id, fixtureDto.Fixture.Name, fixtureDto.Fixture.Description, fixtureDto.Fixture.DateWarranty.Date, fixtureDto.CategoryName, fixtureDto.SupplierName, fixtureDto.Fixture.UpdatedAt, "Select");
            });
            dgvObjectList.Sort(dgvObjectList.Columns[nameof(clmName)], System.ComponentModel.ListSortDirection.Ascending);
        }
Esempio n. 11
0
        private async void FillInputValues()
        {
            var fixture = await FixtureService.GetById(_selectedFixtureId);

            txtName.Text        = fixture.Name;
            txtDescription.Text = fixture.Description;
            txtPrice.Text       = fixture.Price.ToString();
            dtpPurchase.Value   = fixture.DatePurchase.Date;
            dtpWarranty.Value   = fixture.DateWarranty.Date;

            var selectedSupplier = _suppliers.Find(s => s.Id == fixture.SupplierId);
            var selectedCategory = _categories.Find(c => c.Id == fixture.CategoryId);

            cmbSupplier.SelectedItem = new { Display = selectedSupplier.Name, Value = selectedSupplier.Id };
            cmbCategory.SelectedItem = new { Display = selectedCategory.Name, Value = selectedCategory.Id };
        }
Esempio n. 12
0
        private async Task LoadFixtureList()
        {
            dgvObjectList.Rows.Clear();
            dgvObjectList.Refresh();
            ClearInputs();
            HideUpdateButton();

            var fixtures = await FixtureService.GetList();

            fixtures.ForEach(fixtureDto =>
            {
                var availableStatus = fixtureDto.Fixture.FixturePositionId == 1;
                dgvObjectList.Rows.Add(fixtureDto.Fixture.Id, fixtureDto.Fixture.Name, fixtureDto.Fixture.Description, fixtureDto.Fixture.DateWarranty.Date, fixtureDto.Fixture.Price, fixtureDto.CategoryName, fixtureDto.SupplierName, availableStatus, fixtureDto.FixturePosName, fixtureDto.Fixture.UpdatedAt, "Update", "Delete");
            });
            dgvObjectList.Columns[nameof(clmUpdate)].DefaultCellStyle.Font = new System.Drawing.Font(dgvObjectList.DefaultCellStyle.Font, System.Drawing.FontStyle.Underline);
            dgvObjectList.Sort(dgvObjectList.Columns[nameof(clmUpdatedAt)], System.ComponentModel.ListSortDirection.Descending);
        }
        public void ShouldReturnFixturesOnyFromTheSpecifiedDate_WhenPassedDateIsValid()
        {
            // arrange
            var fixtureRepo     = new Mock <IEfRepository <Fixture> >();
            var teamsRepo       = new Mock <IEfRepository <Team> >();
            var playersRepo     = new Mock <IEfRepository <Player> >();
            var fixturesFactory = new Mock <IFixturesFactory>();
            var mailService     = new Mock <IFixtureMailService>();

            var targetDate = new DateTime?(new DateTime(2017, 12, 12));
            var fixtures   = new List <Fixture>()
            {
                new Fixture()
                {
                    FirstHalfStart = targetDate
                },
                new Fixture()
                {
                    FirstHalfStart = new DateTime(2017, 12, 2)
                },
                new Fixture()
                {
                    FirstHalfStart = new DateTime(2017, 12, 4)
                },
                new Fixture()
                {
                    FirstHalfStart = targetDate
                },
            };

            fixtureRepo.Setup(r => r.All).Returns(fixtures.AsQueryable());

            var fixtureService = new FixtureService(
                fixtureRepo.Object,
                teamsRepo.Object,
                playersRepo.Object,
                fixturesFactory.Object,
                mailService.Object);

            // act
            var returnedFixtures = fixtureService.GetAvailableFixtures(targetDate.Value).ToList();

            // assert
            Assert.AreSame(returnedFixtures[0], fixtures[0]);
            Assert.AreSame(returnedFixtures[1], fixtures[3]);
        }
        public void SetSecondHalfStartCorrectly_WhenIdTargetsExistingFixtureAndStatusIsSecondHalf()
        {
            // arrange
            var fixtureRepo     = new Mock <IEfRepository <Fixture> >();
            var teamsRepo       = new Mock <IEfRepository <Team> >();
            var playersRepo     = new Mock <IEfRepository <Player> >();
            var fixturesFactory = new Mock <IFixturesFactory>();
            var mailService     = new Mock <IFixtureMailService>();

            var fixtureId = Guid.NewGuid();

            var fixtures = new List <Fixture>()
            {
                new Fixture()
                {
                    Id = fixtureId
                }
            };

            fixtureRepo.Setup(r => r.All).Returns(fixtures.AsQueryable());

            var fixtureService = new FixtureService(
                fixtureRepo.Object,
                teamsRepo.Object,
                playersRepo.Object,
                fixturesFactory.Object,
                mailService.Object);

            var timeProvider = new Mock <ITimeProvider>();
            var date         = new DateTime(2012, 12, 12);

            timeProvider.Setup(r => r.CurrentDate).Returns(date);

            TimeProvider.CurrentProvider = timeProvider.Object;

            fixtureRepo.Setup(r => r.Update(It.Is <Fixture>(f => f.SecondHalfStart == date)));

            // act
            fixtureService.AddFixtureStatus(fixtureId, FixtureStatus.SecondHalf);

            // assert
            fixtureRepo.Verify(r => r.Update(It.Is <Fixture>(f => f.SecondHalfStart == date)), Times.Once);
        }
Esempio n. 15
0
        private async Task AddFixture()
        {
            FixtureForAddDto fixtureForAddDto = new FixtureForAddDto()
            {
                CategoryId   = (cmbCategory.SelectedItem as dynamic).Value,
                DatePurchase = dtpPurchase.Value.Date,
                DateWarranty = dtpWarranty.Value.Date,
                Description  = txtDescription.Text,
                Name         = txtName.Text,
                PictureUrl   = "pic.lk", // TODO : picture link
                Price        = Convert.ToDecimal(txtPrice.Text),
                SupplierId   = (cmbSupplier.SelectedItem as dynamic).Value
            };

            await FixtureService.Add(fixtureForAddDto);

            MessageBox.Show(Messages.FixtureAdded);
            await LoadFixtureList();
        }
Esempio n. 16
0
        public void ThrowInvalidOperationException_WhenHomeAndAwayTeamsNameAreEqual()
        {
            // arrange
            var fixtureRepo     = new Mock <IEfRepository <Fixture> >();
            var teamsRepo       = new Mock <IEfRepository <Team> >();
            var playersRepo     = new Mock <IEfRepository <Player> >();
            var fixturesFactory = new Mock <IFixturesFactory>();
            var mailService     = new Mock <IFixtureMailService>();

            var fixtureService = new FixtureService(
                fixtureRepo.Object,
                teamsRepo.Object,
                playersRepo.Object,
                fixturesFactory.Object,
                mailService.Object);

            // act and assert
            Assert.Throws <InvalidOperationException>(() => fixtureService.Add("sameName", "sameName", null));
        }
Esempio n. 17
0
        public void CallFixturesRepositoryAddMethodWithFixtureReturnFromFactory_WhenPassedParametersAreValid()
        {
            // arrange
            var fixtureRepo     = new Mock <IEfRepository <Fixture> >();
            var teamsRepo       = new Mock <IEfRepository <Team> >();
            var playersRepo     = new Mock <IEfRepository <Player> >();
            var fixturesFactory = new Mock <IFixturesFactory>();
            var mailService     = new Mock <IFixtureMailService>();

            var teams = new List <Team>()
            {
                new Team()
                {
                    Name = "presentName"
                }, new Team()
                {
                    Name = "AnotherPresentName"
                }
            };

            teamsRepo.Setup(r => r.All).Returns(teams.AsQueryable());

            var date            = new DateTime?(new DateTime(2015, 1, 1));
            var returnedFixture = new Fixture();

            fixturesFactory.Setup(f => f.GetFixture(It.IsAny <Team>(), It.IsAny <Team>(), date))
            .Returns(returnedFixture);
            fixtureRepo.Setup(fr => fr.Add(It.Is <Fixture>(f => f == returnedFixture)));

            var fixtureService = new FixtureService(
                fixtureRepo.Object,
                teamsRepo.Object,
                playersRepo.Object,
                fixturesFactory.Object,
                mailService.Object);

            fixtureService.Add("presentName", "AnotherPresentName", date);

            // assert
            fixtureRepo.Verify(fr => fr.Add(It.Is <Fixture>(f => f == returnedFixture)), Times.Once);
        }
        public async Task UpdateFixtureAsync()
        {
            var mockRepo = new Mock <IDeletableEntityRepository <Fixture> >();

            mockRepo.Setup(x => x.All()).Returns(this.fixture.AsQueryable());

            var service           = new FixtureService(mockRepo.Object);
            var fixturesForUpdate = new List <FixtureForUpdateDto>
            {
                new FixtureForUpdateDto {
                    Id = 1, Result = "2-2"
                },
                new FixtureForUpdateDto {
                    Id = 3, Result = "2-1"
                },
            };
            await service.UpdateFixtureAsync(fixturesForUpdate);

            Assert.Equal("2-2", fixture.Where(x => x.Id == 1).FirstOrDefault().Result);
            Assert.Equal("2-1", fixture.Where(x => x.Id == 3).FirstOrDefault().Result);
        }
Esempio n. 19
0
        private void InitialService()
        {
            this.batchMailService = new BatchMailService(new SystemEmailMRepository(_DatabaseFactory),
                                                         new SystemScheduleRepository(_DatabaseFactory),
                                                         new UnitOfWork(_DatabaseFactory));

            this.fixtureService = new FixtureService(
                new SystemProjectRepository(_DatabaseFactory),
                new EnumerationRepository(_DatabaseFactory),
                new FixtureRepository(_DatabaseFactory),
                new DefectRepairRepository(_DatabaseFactory),
                new UnitOfWork(_DatabaseFactory),
                new WorkStationRepository(_DatabaseFactory),
                new Process_InfoRepository(_DatabaseFactory),
                new VendorInfoRepository(_DatabaseFactory),
                new SystemOrgRepository(_DatabaseFactory),
                new MaintenancePlanRepository(_DatabaseFactory),
                new FixtureMaintenanceProfileRepository(_DatabaseFactory),
                new FixtureUserWorkshopRepository(_DatabaseFactory),
                new RepairLocationRepository(_DatabaseFactory),
                new Production_LineRepository(_DatabaseFactory),
                new Fixture_MachineRepository(_DatabaseFactory),
                new Fixture_DefectCodeRepository(_DatabaseFactory),
                new Fixture_Maintenance_RecordRepository(_DatabaseFactory),
                new Fixture_RepairSolutionRepository(_DatabaseFactory),
                new SystemUserRepository(_DatabaseFactory),
                new WorkshopRepository(_DatabaseFactory),
                new FixtureRepairRepository(_DatabaseFactory),
                new Fixture_ResumeRepository(_DatabaseFactory),
                new DefectCode_GroupRepository(_DatabaseFactory),
                new FixtureDefectCode_SettingRepository(_DatabaseFactory),
                new Fixture_Totake_MRepository(_DatabaseFactory),
                new Fixture_Totake_DRepository(_DatabaseFactory),
                new Fixture_Repair_DRepository(_DatabaseFactory),
                new Fixture_Repair_D_DefectRepository(_DatabaseFactory),
                new Fixture_PartRepository(_DatabaseFactory),
                new EquipmentInfoRepository(_DatabaseFactory),
                new Fixture_Return_MRepository(_DatabaseFactory)
                );
        }
Esempio n. 20
0
        public void CallFixturesFactoryGetFixtureWithCorrectParameters_WhenBothTeamsAreFoundInRepository()
        {
            // arrange
            var fixtureRepo     = new Mock <IEfRepository <Fixture> >();
            var teamsRepo       = new Mock <IEfRepository <Team> >();
            var playersRepo     = new Mock <IEfRepository <Player> >();
            var fixturesFactory = new Mock <IFixturesFactory>();
            var mailService     = new Mock <IFixtureMailService>();

            var teams = new List <Team>()
            {
                new Team()
                {
                    Name = "presentName"
                }, new Team()
                {
                    Name = "AnotherPresentName"
                }
            };

            teamsRepo.Setup(r => r.All).Returns(teams.AsQueryable());

            var date            = new DateTime?(new DateTime(2015, 1, 1));
            var returnedFixture = new Fixture();

            fixturesFactory.Setup(f => f.GetFixture(It.IsAny <Team>(), It.IsAny <Team>(), date));

            var fixtureService = new FixtureService(
                fixtureRepo.Object,
                teamsRepo.Object,
                playersRepo.Object,
                fixturesFactory.Object,
                mailService.Object);

            fixtureService.Add("presentName", "AnotherPresentName", date);

            // assert
            fixturesFactory.Verify(f => f.GetFixture(teams[0], teams[1], date));
        }
        public void ThrowArgumenNullException_WhenPassedIdDoesNotTargetExistingFixture()
        {
            // arrange
            var fixtureRepo     = new Mock <IEfRepository <Fixture> >();
            var teamsRepo       = new Mock <IEfRepository <Team> >();
            var playersRepo     = new Mock <IEfRepository <Player> >();
            var fixturesFactory = new Mock <IFixturesFactory>();
            var mailService     = new Mock <IFixtureMailService>();

            var fixtures = new List <Fixture>();

            fixtureRepo.Setup(r => r.All).Returns(fixtures.AsQueryable());

            var fixtureService = new FixtureService(
                fixtureRepo.Object,
                teamsRepo.Object,
                playersRepo.Object,
                fixturesFactory.Object,
                mailService.Object);

            // act & assert
            Assert.Throws <ArgumentNullException>(() => fixtureService.AddFixtureStatus(Guid.NewGuid(), FixtureStatus.FirstHalf));
        }
Esempio n. 22
0
        protected override async void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);

            SetContentView(Resource.Layout.last_fixtures);
            scoresList = (ListView)FindViewById(Resource.Id.scoreView);

            if (httpClient == null)
            {
                httpClient = new HttpClient();
            }

            // instanciation du service responsable des fixtures
            fixtureService     = FixtureService.CompetitionFixturesServiceSession(httpClient);
            fixtureServiceMock = FixtureServiceMocker.FixtureServiceMockerSession(this);
            competitionService = CompetitionService.CompetitionServiceSession(httpClient);

            bool debug = true; // TODO A enlever

            fixtures = await LoadLastFixtures(debug);

            scoreAdapter       = new ScoreAdapter(this, fixtures);
            scoresList.Adapter = scoreAdapter;
        }
        public void CallFixtureMailServiceSendFixtureResultMailWithCorrectFixtureObjectAndSubscribers_WhenFixtureStatusIsFullTime()
        {
            // arrange
            var fixtureRepo     = new Mock <IEfRepository <Fixture> >();
            var teamsRepo       = new Mock <IEfRepository <Team> >();
            var playersRepo     = new Mock <IEfRepository <Player> >();
            var fixturesFactory = new Mock <IFixturesFactory>();
            var mailService     = new Mock <IFixtureMailService>();

            var fixtureId = Guid.NewGuid();

            var homeTeam = new Team()
            {
                Subscribers = new List <User>()
                {
                    new User()
                    {
                        TestUsername = "******"
                    }
                }
            };
            var awayTeam = new Team()
            {
                Subscribers = new List <User>()
                {
                    new User()
                    {
                        TestUsername = "******"
                    }
                }
            };


            var fixtures = new List <Fixture>()
            {
                new Fixture()
                {
                    Id = fixtureId, HomeTeam = homeTeam, AwayTeam = awayTeam
                }
            };

            fixtureRepo.Setup(r => r.All).Returns(fixtures.AsQueryable());

            var timeProvider = new Mock <ITimeProvider>();
            var date         = new DateTime(2012, 12, 12);

            timeProvider.Setup(r => r.CurrentDate).Returns(date);

            TimeProvider.CurrentProvider = timeProvider.Object;

            mailService.Setup(m => m
                              .SendFixtureResultMail(It.Is <Fixture>(
                                                         f => f == fixtures[0]),
                                                     It.Is <IEnumerable <string> >(c => c.Count() == 2)));

            var fixtureService = new FixtureService(
                fixtureRepo.Object,
                teamsRepo.Object,
                playersRepo.Object,
                fixturesFactory.Object,
                mailService.Object);

            // act
            fixtureService.AddFixtureStatus(fixtureId, FixtureStatus.FullTime);

            // assert
            mailService.Verify(m => m
                               .SendFixtureResultMail(It.Is <Fixture>(
                                                          f => f == fixtures[0]),
                                                      It.Is <IEnumerable <string> >(c => c.Count() == 2)), Times.Once);
        }