public async Task UpdatePositionCallsOpenPosition() { var position = this.accountRepository .Object .All() .Where(a => a.Id == 1) .Select(a => a.Positions .FirstOrDefault(p => p.Id == 3)) .FirstOrDefault(); Assert.NotNull(position); Assert.AreEqual(OpenClose.Open, position.OpenClose); var mockPositions = new List <Position>() { position }.AsQueryable().BuildMock(); var testPositionRepository = new Mock <IDeletableEntityRepository <Position> >(); testPositionRepository .Setup(x => x.All()) .Returns(mockPositions.Object); var testPositionService = new PositionsService(testPositionRepository.Object, this.accountRepository.Object, this.stockRepository.Object, this.datasetRepository.Object); await testPositionService.UpdatePosition(1, 3, 10, 100M, true); this.accountRepository.Verify(a => a.All(), Times.AtLeastOnce); this.stockRepository.Verify(s => s.All(), Times.Once); }
private PositionsService MockTestPositionService() { var position = this.accountRepository .Object .All() .Where(a => a.Id == 1) .Select(a => a.Positions .FirstOrDefault(p => p.Id == 3)) .FirstOrDefault(); Assert.NotNull(position); Assert.AreEqual(OpenClose.Open, position.OpenClose); var mockPositions = new List <Position>() { position }.AsQueryable().BuildMock(); var testPositionRepository = new Mock <IDeletableEntityRepository <Position> >(); testPositionRepository .Setup(x => x.All()) .Returns(mockPositions.Object); var testPositionService = new PositionsService(testPositionRepository.Object, this.accountRepository.Object, this.stockRepository.Object, this.datasetRepository.Object); return(testPositionService); }
public PositionsServiceTests() { long Id = singleEntity.Id; Mock = DefaultContextMock.GetMock(); MockSet = SetUpMock.SetUpFor(testEntities); Mock.Setup(c => c.Set <Position>()).Returns(MockSet.Object); Mock.Setup(c => c.Position).Returns(MockSet.Object); testedService = new PositionsService(Mock.Object); }
public async Task DeleteWorkoutShouldWorkCorrectly() { var options = new DbContextOptionsBuilder <ApplicationDbContext>() .UseInMemoryDatabase(databaseName: Guid.NewGuid().ToString()).Options; var dbContext = new ApplicationDbContext(options); var position = new Position { Name = PositionName.PowerForward, Description = "Power Forward position", Playstyle = "You play like a PF", }; var workout = new Workout { Name = "Workout Five", Description = "Some kind of randommm description again", PositionId = position.Id, VideoUrl = "test youtube link 5", ImageUrl = "5testimg", }; var workoutsRepository = new EfDeletableEntityRepository <Workout>(dbContext); var positionsRepository = new EfDeletableEntityRepository <Position>(dbContext); var positionsService = new PositionsService(positionsRepository); var moqCloudinaryService = new Mock <ICloudinaryService>(); var coachRepository = new EfDeletableEntityRepository <Coach>(dbContext); var coachesService = new CoachesService(coachRepository, moqCloudinaryService.Object); var service = new WorkoutsService(moqCloudinaryService.Object, workoutsRepository, positionsService, coachesService); var workoutId = workout.Id; await dbContext.Positions.AddAsync(position); await dbContext.Workouts.AddAsync(workout); await dbContext.SaveChangesAsync(); await service.DeleteAsync(workoutId); var workoutxd = service.GetWorkoutById(workoutId); Assert.Null(workoutxd); }
public void GetWorkoutByIdShouldReturnNullIfWorkoutDoesntExist() { var workouts = new List <Workout> { new Workout { Id = "workoutId123", Name = "Workout One", Description = "Some kind of workout description", Position = new Position { Name = PositionName.ShootingGuard, Description = "Shooting guard position", Playstyle = "You play like a shooting guard", }, VideoUrl = "test youtube link", }, new Workout { Id = "workoutId456", Name = "Workout Two", Description = "Some kind of random description", Position = new Position { Name = PositionName.PointGuard, Description = "Point guard position", Playstyle = "You play like a point guard", }, VideoUrl = "test youtube link 2", }, }; var positionsService = new PositionsService(this.positionsRepository.Object); var coachesService = new CoachesService(this.coachRepository.Object, this.moqCloudinaryService.Object); this.workoutsRepository.Setup(r => r.AllAsNoTracking()).Returns(() => workouts.AsQueryable()); var service = new WorkoutsService(this.moqCloudinaryService.Object, this.workoutsRepository.Object, positionsService, coachesService); var workout = service.GetWorkoutById("notexistingworkout"); Assert.Null(workout); this.workoutsRepository.Verify(x => x.AllAsNoTracking(), Times.Once); }
public void Setup() { var context = ApplicationDbContextInMemoryFactory.InitializeContext(); this.positionRepository = new EfDeletableEntityRepository <Position>(context); this.mockAccounts = TestDataHelpers.GetTestData().AsQueryable().BuildMock(); this.mockStocks = TestDataHelpers.GetTestStocks().AsQueryable().BuildMock(); this.accountRepository = new Mock <IDeletableEntityRepository <Account> >(); this.stockRepository = new Mock <IDeletableEntityRepository <Stock> >(); this.datasetRepository = new Mock <IDeletableEntityRepository <DataSet> >(); this.accountRepository .Setup(a => a.All()) .Returns(this.mockAccounts.Object); this.stockRepository .Setup(s => s.All()) .Returns(this.mockStocks.Object); this.datasetRepository .Setup(d => d.All()) .Returns(new List <DataSet>() { new DataSet() { DateAndTime = DateTime.Now, ClosePrice = 100.00M, }, new DataSet() { DateAndTime = DateTime.Parse("31.12.2018"), ClosePrice = 100.00M, }, }.AsQueryable()); this.positionsService = new PositionsService(this.positionRepository, this.accountRepository.Object, this.stockRepository.Object, this.datasetRepository.Object); }
private void OnSaveMethod(bool IsAlive) { string nameTemp = ContentPanel.GetFormControlFromPanel <TextBox>(NameTextBox).Text; string descriptionTemp = ContentPanel.GetFormControlFromPanel <TextBox>(DescriptionTextBox).Text; PositionModel NewModel = new PositionModel { Name = nameTemp, Description = descriptionTemp }; PositionDataContract changes = new PositionDataContract(); int selectedModel = baseControl.Models.IndexOf(OldModel); if (OldModel.IsNull()) { NewModel.ID = Guid.NewGuid(); changes = PositionsService.InsertPosition(mapper.Map <PositionModel, PositionDataContract>(NewModel)).Result; baseControl.Models.Add(mapper.Map <PositionDataContract, PositionModel>(changes)); } else { NewModel.ID = baseControl.Models[selectedModel].ID; changes = PositionsService.UpdatePosition(mapper.Map <PositionModel, PositionDataContract>(NewModel)).Result; baseControl.Models[selectedModel] = mapper.Map <PositionDataContract, PositionModel>(changes); baseControl.CollectionView.Items[selectedModel].Selected = true; } if (IsAlive) { OldModel = selectedModel.Equals(-1) ? baseControl.Models[baseControl.Models.Count - 1] : baseControl.Models[selectedModel]; } else { CloseViewButton.PerformClick(); } }
private void UpdatePositionsSource(UserModel model) { ComboBoxEdit positionCombo = ContentPanel.GetFormControlFromPanel <ComboBoxEdit>(PositionComboBox); positionCombo.Properties.Items.Clear(); if (!model.IsNull() && model.Login.Equals("admin")) { PositionModel position = mapper.Map <PositionDataContract, PositionModel>( PositionsService.GetFirstPositionByName("Администратор").Result); positions.Add(position); } else { positions = mapper.Map <List <PositionDataContract>, List <PositionModel> >( PositionsService.GetPositionsCollection().Result .Where(p => !p.Name.Equals("Администратор")).ToList() ); } foreach (PositionModel item in positions) { positionCombo.Properties.Items.Add(item); } }
public async Task EditWorkoutShouldUpdateCorrectly() { var workouts = new List <Workout> { new Workout { Id = "workoutId2312312312312", Name = "Workout Five", Description = "Some kind of randommm description again", Position = new Position { Id = "PositionFive", Name = PositionName.PowerForward, Description = "Power Forward position", Playstyle = "You play like a PF", }, PositionId = "PositionFive", VideoUrl = "test youtube link 5", Picture = new Picture { Id = "5pic", Url = "test 5url" }, PictureId = "5pic", ImageUrl = "5testimg", AddedByCoach = new Coach { Id = "c5", Name = "Coach5", Description = "desc5", Experience = 9, Phone = "34435212", Email = "*****@*****.**", User = new ApplicationUser { Id = "coachuser5" }, UserId = "coachuser5", Picture = new Picture { Id = "cpic5", Url = "test xurl5" }, PictureId = "cpic5", }, CoachId = "c5", }, }; this.positionsRepository.Setup(r => r.AllAsNoTracking()).Returns(() => new List <Position> { new Position { Id = "PositionFive", Name = PositionName.PowerForward, Description = "Power Forward position", Playstyle = "You play like a PF", }, }.AsQueryable()); var positionsService = new PositionsService(this.positionsRepository.Object); var coachesService = new CoachesService(this.coachRepository.Object, this.moqCloudinaryService.Object); this.workoutsRepository.Setup(r => r.AllAsNoTracking()).Returns(() => workouts.AsQueryable()); var service = new WorkoutsService(this.moqCloudinaryService.Object, this.workoutsRepository.Object, positionsService, coachesService); var model = new EditWorkoutViewModel { Id = "workoutId2312312312312", Name = "Changed name", Description = "Some kind of randommm description again", PositionName = PositionName.PowerForward, VideoUrl = "test youtube link CHANGED", CoachId = "c5", }; await service.EditAsync(model); var workout = service.GetWorkoutById("workoutId2312312312312"); Assert.Equal("Changed name", workout.Name); Assert.Equal("test youtube link CHANGED", workout.VideoUrl); this.workoutsRepository.Verify(x => x.AllAsNoTracking(), Times.AtMost(2)); }
public void GetWorkoutForEditShouldThrowExceptionIfWorkoutNotFound() { var workouts = new List <Workout> { new Workout { Id = "workoutId2312312312312", Name = "Workout Five", Description = "Some kind of randommm description again", Position = new Position { Id = "PositionFive", Name = PositionName.PowerForward, Description = "Power Forward position", Playstyle = "You play like a PF", }, PositionId = "PositionFive", VideoUrl = "test youtube link 5", Picture = new Picture { Id = "5pic", Url = "test 5url" }, PictureId = "5pic", ImageUrl = "5testimg", AddedByCoach = new Coach { Id = "c5", Name = "Coach5", Description = "desc5", Experience = 9, Phone = "34435212", Email = "*****@*****.**", User = new ApplicationUser { Id = "coachuser5" }, UserId = "coachuser5", Picture = new Picture { Id = "cpic5", Url = "test xurl5" }, PictureId = "cpic5", }, CoachId = "c5", }, }; this.positionsRepository.Setup(r => r.AllAsNoTracking()).Returns(() => new List <Position> { new Position { Id = "PositionFive", Name = PositionName.PowerForward, Description = "Power Forward position", Playstyle = "You play like a PF", }, }.AsQueryable()); var positionsService = new PositionsService(this.positionsRepository.Object); var coachesService = new CoachesService(this.coachRepository.Object, this.moqCloudinaryService.Object); this.workoutsRepository.Setup(r => r.AllAsNoTracking()).Returns(() => workouts.AsQueryable()); var service = new WorkoutsService(this.moqCloudinaryService.Object, this.workoutsRepository.Object, positionsService, coachesService); Assert.Throws <InvalidOperationException>(() => service.GetWorkoutForEdit("notexistingId")); this.workoutsRepository.Verify(x => x.AllAsNoTracking(), Times.Once); }
public void GetAllShouldReturnChosenWorkoutWhenFilteredForIt() { var workouts = new List <Workout> { new Workout { Id = "workoutId123", Name = "Workout One", Description = "Some kind of workout description", Position = new Position { Id = "PositionOne", Name = PositionName.ShootingGuard, Description = "Shooting guard position", Playstyle = "You play like a shooting guard", }, VideoUrl = "test youtube link", PositionId = "PositionOne", Picture = new Picture { Id = "pic", Url = "test url" }, PictureId = "pic", ImageUrl = "testimg", AddedByCoach = new Coach { Id = "c1", Name = "Coach1", Description = "desc1", Experience = 2, Phone = "321312312", Email = "*****@*****.**", User = new ApplicationUser { Id = "coachuser" }, UserId = "coachuser", Picture = new Picture { Id = "cpic", Url = "test xurl" }, PictureId = "cpic", }, }, new Workout { Id = "workoutId456", Name = "Workout Two", Description = "Some kind of random description", Position = new Position { Id = "PositionTwo", Name = PositionName.PointGuard, Description = "Point guard position", Playstyle = "You play like a point guard", }, PositionId = "PositionTwo", VideoUrl = "test youtube link 2", Picture = new Picture { Id = "2pic", Url = "test 2url" }, PictureId = "2pic", ImageUrl = "2testimg", AddedByCoach = new Coach { Id = "c2", Name = "Coach2", Description = "desc2", Experience = 8, Phone = "322312312", Email = "*****@*****.**", User = new ApplicationUser { Id = "coachuser2" }, UserId = "coachuser2", Picture = new Picture { Id = "cpic2", Url = "test xurl2" }, PictureId = "cpic2", }, }, new Workout { Id = "workoutId789", Name = "Workout Three", Description = "Some kind of random description again", Position = new Position { Id = "PositionThree", Name = PositionName.Center, Description = "Center position", Playstyle = "You play like a center", }, PositionId = "PositionThree", VideoUrl = "test youtube link 3", Picture = new Picture { Id = "3pic", Url = "test 3url" }, PictureId = "3pic", ImageUrl = "3testimg", AddedByCoach = new Coach { Id = "c3", Name = "Coach3", Description = "desc3", Experience = 5, Phone = "32235412", Email = "*****@*****.**", User = new ApplicationUser { Id = "coachuser3" }, UserId = "coachuser3", Picture = new Picture { Id = "cpic3", Url = "test xurl3" }, PictureId = "cpic3", }, }, new Workout { Id = "workoutId21312312", Name = "Workout Four", Description = "Some kind of random description agaixn", Position = new Position { Id = "PositionFour", Name = PositionName.SmallForward, Description = "Small Forward position", Playstyle = "You play like a SF", }, PositionId = "PositionFour", VideoUrl = "test youtube link 4", Picture = new Picture { Id = "4pic", Url = "test 4url" }, PictureId = "4pic", ImageUrl = "4testimg", AddedByCoach = new Coach { Id = "c4", Name = "Coach4", Description = "desc4", Experience = 6, Phone = "32235212", Email = "*****@*****.**", User = new ApplicationUser { Id = "coachuser4" }, UserId = "coachuser4", Picture = new Picture { Id = "cpic4", Url = "test xurl4" }, PictureId = "cpic4", }, }, new Workout { Id = "workoutId2312312312312", Name = "Workout Five", Description = "Some kind of randommm description again", Position = new Position { Id = "PositionFive", Name = PositionName.PowerForward, Description = "Power Forward position", Playstyle = "You play like a PF", }, PositionId = "PositionFive", VideoUrl = "test youtube link 5", Picture = new Picture { Id = "5pic", Url = "test 5url" }, PictureId = "5pic", ImageUrl = "5testimg", AddedByCoach = new Coach { Id = "c5", Name = "Coach5", Description = "desc5", Experience = 9, Phone = "34435212", Email = "*****@*****.**", User = new ApplicationUser { Id = "coachuser5" }, UserId = "coachuser5", Picture = new Picture { Id = "cpic5", Url = "test xurl5" }, PictureId = "cpic5", }, }, }; var positionsService = new PositionsService(this.positionsRepository.Object); var coachesService = new CoachesService(this.coachRepository.Object, this.moqCloudinaryService.Object); this.workoutsRepository.Setup(r => r.AllAsNoTracking()).Returns(() => workouts.AsQueryable()); var service = new WorkoutsService(this.moqCloudinaryService.Object, this.workoutsRepository.Object, positionsService, coachesService); var inputModel = new SearchWorkoutInputModel { PointGuard = true, ShootingGuard = false, SmallForward = false, PowerForward = false, Center = false, }; var workoutsAll = service.GetSearchedPositions <WorkoutInListViewModel>(inputModel, 1, 12); Assert.Equal("Workout Two", workoutsAll.Workouts.First().Name); Assert.Single(workoutsAll.Workouts); this.workoutsRepository.Verify(x => x.AllAsNoTracking(), Times.Once); }
public async Task AddWorkoutShouldCreateWorkoutAndAddItToCoach() { var workouts = new List <Workout> { new Workout { Id = "workoutId123", Name = "Workout One", Description = "Some kind of workout description", Position = new Position { Id = "PositionOne", Name = PositionName.ShootingGuard, Description = "Shooting guard position", Playstyle = "You play like a shooting guard", }, VideoUrl = "test youtube link", PositionId = "PositionOne", Picture = new Picture { Id = "pic", Url = "test url" }, PictureId = "pic", ImageUrl = "testimg", AddedByCoach = new Coach { Id = "c1", Name = "Coach1", Description = "desc1", Experience = 2, Phone = "321312312", Email = "*****@*****.**", User = new ApplicationUser { Id = "coachuser" }, UserId = "coachuser", Picture = new Picture { Id = "cpic", Url = "test xurl" }, PictureId = "cpic", }, }, }; this.positionsRepository.Setup(r => r.AllAsNoTracking()).Returns(() => new List <Position> { new Position { Id = "PositionOne", Name = PositionName.ShootingGuard, Description = "Shooting guard position", Playstyle = "You play like a shooting guard", }, }.AsQueryable()); var positionsService = new PositionsService(this.positionsRepository.Object); this.coachRepository.Setup(r => r.AllAsNoTracking()).Returns(() => new List <Coach> { new Coach { Id = "c1", Name = "Coach1", Description = "desc1", Experience = 2, Phone = "321312312", Email = "*****@*****.**", User = new ApplicationUser { Id = "coachuser" }, UserId = "coachuser", Picture = new Picture { Id = "cpic", Url = "test xurl" }, PictureId = "cpic", }, }.AsQueryable()); var coachesService = new CoachesService(this.coachRepository.Object, this.moqCloudinaryService.Object); this.workoutsRepository.Setup(r => r.AllAsNoTracking()).Returns(() => workouts.AsQueryable()); var service = new WorkoutsService(this.moqCloudinaryService.Object, this.workoutsRepository.Object, positionsService, coachesService); // Arrange var fileMock = new Mock <IFormFile>(); // Setup mock file using a memory stream var content = "Hello World from a Fake File"; var fileName = "test.pdf"; var ms = new MemoryStream(); var writer = new StreamWriter(ms); writer.Write(content); writer.Flush(); ms.Position = 0; fileMock.Setup(_ => _.OpenReadStream()).Returns(ms); fileMock.Setup(_ => _.FileName).Returns(fileName); fileMock.Setup(_ => _.Length).Returns(ms.Length); var file = fileMock.Object; this.workoutsRepository.Setup(r => r.AddAsync(It.IsAny <Workout>())).Callback((Workout workout) => workouts.Add(workout)); var inputModel = new CreateWorkoutInputModel { Name = "Workout for beginners", Description = "This workout is for beginners and it will help them", PositionName = PositionName.ShootingGuard, VideoUrl = "testvideourl", Image = file, }; await service.CreateAsync(inputModel, "coachuser"); Assert.Contains(workouts, x => x.Name == "Workout for beginners"); Assert.Equal(2, workouts.Count); this.workoutsRepository.Verify(x => x.AllAsNoTracking(), Times.Never); }
public async Task GetPlayerAsyncShouldReturnNullWithIdNotFound() { var positions = new List <Position> { new Position { Name = PositionName.PointGuard, Description = "Point guard position", Playstyle = "You play like a point guard", Players = new List <Player> { new Player { Id = "peshosId123", Name = "Pesho Player", TeamName = "SoftUni Coders", Championships = 6, Description = "Some short description for this one", Experience = "8 years", Height = "2.0m", Weight = "102kg", }, new Player { Id = "goshosId123", Name = "Gosho Player", TeamName = "SoftUni Coders", Championships = 4, Description = "Another short description for this one", Experience = "5 years", Height = "1.8m", Weight = "85kg", }, }, }, new Position { Name = PositionName.ShootingGuard, Description = "Shooting guard position", Playstyle = "You play like a shooting guard", Players = new List <Player> { new Player { Id = "toshosId123", Name = "Toshoo Player", TeamName = "SoftUni Coders", Championships = 2, Description = "Some short descr for this one", Experience = "5 years", Height = "1.90m", Weight = "91kg", }, }, }, }; this.repository.Setup(r => r.AllAsNoTracking()).Returns(() => positions.AsQueryable()); var service = new PositionsService(this.repository.Object); var position = await service.GetPlayerAsync("peshoNotFound123"); Assert.Null(position); }
public void GetPositionByNameShouldReturnTheRightPosition() { var positions = new List <Position> { new Position { Id = "position1", Name = PositionName.PointGuard, Description = "Point guard position", Playstyle = "You play like a point guard", Players = new List <Player> { new Player { Id = "peshosId123", Name = "Pesho Player", TeamName = "SoftUni Coders", Championships = 6, Description = "Some short description for this one", Experience = "8 years", Height = "2.0m", Weight = "102kg", }, new Player { Id = "goshosId123", Name = "Gosho Player", TeamName = "SoftUni Coders", Championships = 4, Description = "Another short description for this one", Experience = "5 years", Height = "1.8m", Weight = "85kg", }, }, }, new Position { Id = "position2", Name = PositionName.ShootingGuard, Description = "Shooting guard position", Playstyle = "You play like a shooting guard", Players = new List <Player> { new Player { Id = "toshosId123", Name = "Toshoo Player", TeamName = "SoftUni Coders", Championships = 2, Description = "Some short descr for this one", Experience = "5 years", Height = "1.90m", Weight = "91kg", }, }, }, }; this.repository.Setup(r => r.AllAsNoTracking()).Returns(() => positions.AsQueryable()); var service = new PositionsService(this.repository.Object); var name = PositionName.PointGuard; var position = service.GetPositionByName(name); Assert.Equal("PointGuard", position.Name.ToString()); Assert.NotNull(position); this.repository.Verify(x => x.AllAsNoTracking(), Times.Once); }