public async Task UpdateNewExplorersTeam_Ok() { //Arrange var id = Guid.NewGuid(); var explorersTeam = new ExplorersTeam { Id = id, Name = "Test", }; //Act await m_repository.CreateAsync(explorersTeam); var(_, explorersTeams) = await m_repository.SearchAsync(new Pagination(), new Ordering(), new ExplorersTeamFilter { SearchTerm = id.ToString() }); explorersTeam.Name = "Modified"; await m_repository.UpdateAsync(new List <ExplorersTeam> { explorersTeam }); var(_, updatedResponse) = await m_repository.SearchAsync(new Pagination(), new Ordering(), new ExplorersTeamFilter { SearchTerm = id.ToString() }); //Assert Assert.Equal(id, explorersTeams.First().Id); Assert.Equal("Modified", explorersTeams.First().Name); await m_repository.DeleteAsync(updatedResponse.First()); }
public async void CreateWithValidData_Ok() { //Arrange var explorersTeam = new ExplorersTeam { Id = Guid.NewGuid(), Name = "Test" }; m_explorersTeamRepositoryMock.Setup(t => t.SearchAsync(It.IsAny <Pagination>(), It.IsAny <Ordering>(), It.IsAny <ExplorersTeamFilter>())) .ReturnsAsync(new Tuple <int, List <ExplorersTeam> >(1, new List <ExplorersTeam> { explorersTeam })); //Act await m_robotService.CreateRobotAsync(new Robot { Id = Guid.NewGuid(), Name = "Test", ExplorersTeamId = explorersTeam.Id, ProductNumber = "123" }); //Assert m_repositoryMock.Verify(t => t.CreateAsync(It.IsAny <Robot>()), Times.Once); }
public async Task AddAndDeleteExplorersTeam_Ok() { //Arrange var id = Guid.NewGuid(); var explorersTeam = new ExplorersTeam { Id = id, Name = "Test" }; //Act await m_repository.CreateAsync(explorersTeam); //Assert var(_, explorersTeams) = await m_repository.SearchAsync(new Pagination(), new Ordering(), new ExplorersTeamFilter { SearchTerm = id.ToString() }); Assert.Equal(id, explorersTeams.First().Id); Assert.Equal("Test", explorersTeams.First().Name); await m_repository.DeleteAsync(explorersTeam); var(_, emptyResponse) = await m_repository.SearchAsync(new Pagination(), new Ordering(), new ExplorersTeamFilter { SearchTerm = id.ToString() }); Assert.Empty(emptyResponse); }
public async void UpdateInvalidRobot_Throws() { //Arrange m_repositoryMock.Setup(t => t.SearchAsync(It.IsAny <Pagination>(), It.IsAny <Ordering>(), It.IsAny <IFilter <Robot> >())) .ReturnsAsync(new Tuple <int, List <Robot> >(0, new List <Robot>())); var explorersTeam = new ExplorersTeam { Id = Guid.NewGuid(), Name = "Test" }; m_explorersTeamRepositoryMock.Setup(t => t.SearchAsync(It.IsAny <Pagination>(), It.IsAny <Ordering>(), It.IsAny <ExplorersTeamFilter>())) .ReturnsAsync(new Tuple <int, List <ExplorersTeam> >(1, new List <ExplorersTeam> { explorersTeam })); //Act var robotDoesNotExist = m_robotService.UpdateRobotAsync(new Robot { Id = Guid.NewGuid(), Name = "Test" }); //Assert await Assert.ThrowsAsync <ValidationException>(async() => await robotDoesNotExist); }
public async void CreateWithRepositoryFail_Throws() { //Arrange m_repositoryMock.Setup(t => t.CreateAsync(It.IsAny <Robot>())).ThrowsAsync(new Exception("Mocked")); var explorersTeam = new ExplorersTeam { Id = Guid.NewGuid(), Name = "Test" }; m_explorersTeamRepositoryMock.Setup(t => t.SearchAsync(It.IsAny <Pagination>(), It.IsAny <Ordering>(), It.IsAny <ExplorersTeamFilter>())) .ReturnsAsync(new Tuple <int, List <ExplorersTeam> >(1, new List <ExplorersTeam> { explorersTeam })); //Act var repoFailed = m_robotService.CreateRobotAsync(new Robot { Id = Guid.NewGuid(), Name = "Test", ExplorersTeamId = explorersTeam.Id, ProductNumber = "123" }); //Assert await Assert.ThrowsAsync <Exception>(async() => await repoFailed); }
public async void SearchExplorersTeam_Ok() { //Arrange var explorersTeam = new ExplorersTeam { Id = Guid.NewGuid(), Name = "A" }; m_repositoryMock.Setup(t => t.SearchAsync(It.IsAny <Pagination>(), It.IsAny <Ordering>(), It.IsAny <IFilter <ExplorersTeam> >())) .ReturnsAsync(new Tuple <int, List <ExplorersTeam> >(1, new List <ExplorersTeam> { explorersTeam })); //Act var(count, explorersTeams) = await m_explorersTeamService.SearchExplorersTeamAsync(new Pagination(), new Ordering(), new ExplorersTeamFilter { SearchTerm = explorersTeam.Id.ToString() }); //Assert m_repositoryMock.Verify(t => t.SearchAsync(It.IsAny <Pagination>(), It.IsAny <Ordering>(), It.IsAny <ExplorersTeamFilter>()), Times.Once); Assert.Equal(1, count); Assert.Equal(explorersTeam, explorersTeams.First()); }
private ExplorersTeam UpdateExplorersTeam(List <Robot> robots, Captain captain) { ExplorersTeam explorersTeam = appDbContext.ExplorersTeams.Where(et => et.Captain.Id == captain.Id).FirstOrDefault(); List <Robot> robotsInDb = appDbContext.Robots.ToList(); List <Robot> planetRobots = new List <Robot>(); foreach (Robot robot in robots) { var robotToAdd = robotsInDb.Where(r => r.Id == robot.Id).FirstOrDefault(); robotToAdd.IsAvailable = false; planetRobots.Add(robotToAdd); } if (explorersTeam == null) { explorersTeam = new ExplorersTeam { Captain = captain, Robots = planetRobots }; } explorersTeam.Robots = planetRobots; return(explorersTeam); }
public async void CreateWithValidData_Ok() { //Arrange var explorersTeam = new ExplorersTeam { Id = Guid.NewGuid(), Name = "Test" }; m_explorersTeamRepositoryMock.Setup(t => t.SearchAsync(It.IsAny <Pagination>(), It.IsAny <Ordering>(), It.IsAny <ExplorersTeamFilter>())) .ReturnsAsync(new Tuple <int, List <ExplorersTeam> >(1, new List <ExplorersTeam> { explorersTeam })); m_repositoryMock.Setup(t => t.SearchAsync(It.IsAny <Pagination>(), It.IsAny <Ordering>(), It.IsAny <CaptainFilter>())) .ReturnsAsync(new Tuple <int, List <Captain> >(0, new List <Captain>())); //Act await m_captainService.CreateCaptainAsync(new Captain { Id = Guid.NewGuid(), Name = "Test", ExplorersTeamId = explorersTeam.Id, Email = "*****@*****.**", Age = 40 }); //Assert m_repositoryMock.Verify(t => t.CreateAsync(It.IsAny <Captain>()), Times.Once); }
public async void CreateWithRepositoryFail_Throws() { //Arrange m_repositoryMock.Setup(t => t.CreateAsync(It.IsAny <Captain>())).ThrowsAsync(new Exception("Mocked")); var explorersTeam = new ExplorersTeam { Id = Guid.NewGuid(), Name = "Test" }; m_explorersTeamRepositoryMock.Setup(t => t.SearchAsync(It.IsAny <Pagination>(), It.IsAny <Ordering>(), It.IsAny <ExplorersTeamFilter>())) .ReturnsAsync(new Tuple <int, List <ExplorersTeam> >(1, new List <ExplorersTeam> { explorersTeam })); m_repositoryMock.Setup(t => t.SearchAsync(It.IsAny <Pagination>(), It.IsAny <Ordering>(), It.IsAny <CaptainFilter>())) .ReturnsAsync(new Tuple <int, List <Captain> >(0, new List <Captain>())); //Act var repoFailed = m_captainService.CreateCaptainAsync(new Captain { Id = Guid.NewGuid(), Name = "Test", ExplorersTeamId = explorersTeam.Id, Age = 40, Email = "*****@*****.**" }); //Assert await Assert.ThrowsAsync <Exception>(async() => await repoFailed); }
public async void CreateWithInvalidData_Throws() { //Arrange var explorersTeam = new ExplorersTeam { Id = Guid.NewGuid(), Name = "Test" }; m_explorersTeamRepositoryMock.Setup(t => t.SearchAsync(It.IsAny <Pagination>(), It.IsAny <Ordering>(), It.IsAny <ExplorersTeamFilter>())) .ReturnsAsync(new Tuple <int, List <ExplorersTeam> >(1, new List <ExplorersTeam> { explorersTeam })); //Act var invalidData = m_captainService.CreateCaptainAsync(new Captain { Id = Guid.NewGuid(), Name = "Test", ExplorersTeamId = explorersTeam.Id, Email = "@invalid" }); //Assert await Assert.ThrowsAsync <ValidationException>(async() => await invalidData); m_repositoryMock.Verify(t => t.CreateAsync(It.IsAny <Captain>()), Times.Never); }
public async void UpdateWithValidData_Ok() { //Arrange var explorersTeam = new ExplorersTeam { Id = Guid.NewGuid(), Name = "Test" }; var shuttle = new Shuttle { Id = Guid.NewGuid(), Name = "Test", ExplorersTeamId = explorersTeam.Id, ShipNumber = "A1" }; m_repositoryMock.Setup(t => t.SearchAsync(It.IsAny <Pagination>(), It.IsAny <Ordering>(), It.IsAny <IFilter <Shuttle> >())) .ReturnsAsync(new Tuple <int, List <Shuttle> >(1, new List <Shuttle> { shuttle })); m_explorersTeamRepositoryMock.Setup(t => t.SearchAsync(It.IsAny <Pagination>(), It.IsAny <Ordering>(), It.IsAny <ExplorersTeamFilter>())) .ReturnsAsync(new Tuple <int, List <ExplorersTeam> >(1, new List <ExplorersTeam> { explorersTeam })); //Act await m_shuttleService.UpdateShuttleAsync(shuttle); //Assert m_repositoryMock.Verify(t => t.UpdateAsync(It.IsAny <List <Shuttle> >()), Times.Once); }
public IActionResult CreatePlanet([FromBody] AddPlanetViewModel planetViewModel) { try { Status status = appDbContext.Statuses.Where(s => s.Id == planetViewModel.StatusId).FirstOrDefault(); Captain captain = appDbContext.Captains.Where(c => c.Id == planetViewModel.CaptainId.ToString()).FirstOrDefault(); List <Robot> robots = appDbContext.Robots.ToList(); ExplorersTeam explorersTeam = new ExplorersTeam(); var robotsOfNewPlanet = new List <Robot>(); if (captain != null) { foreach (Robot robot in planetViewModel.Robots) { var robotToAdd = robots.Where(r => r.Id == robot.Id).FirstOrDefault(); robotToAdd.IsAvailable = false; robotsOfNewPlanet.Add(robotToAdd); } captain.IsAvailable = false; explorersTeam = new ExplorersTeam { Captain = captain, Robots = robotsOfNewPlanet }; } else { explorersTeam.Captain = null; explorersTeam.Robots = null; } Planet planet = new Planet { Name = planetViewModel.Name, ImageUrl = planetViewModel.ImageUrl, Description = planetViewModel.Description, Status = status, ExplorersTeam = explorersTeam }; appDbContext.Planets.Add(planet); appDbContext.SaveChanges(); return(new OkObjectResult("Planet succesfully added.")); } catch (Exception exc) { return(StatusCode(StatusCodes.Status500InternalServerError)); }; }
public IActionResult UpdatePlanet(int id, [FromBody] UpdatePlanetViewModel planetViewModel) { try { Planet planetToUpdate = appDbContext.Planets.Where(p => p.Id == id) .Include(p => p.ExplorersTeam) .ThenInclude(p => p.Captain) .Include(p => p.ExplorersTeam) .ThenInclude(p => p.Robots) .FirstOrDefault(); Status status = appDbContext.Statuses.Where(s => s.Id == planetViewModel.StatusId).FirstOrDefault(); ExplorersTeam explorersTeam = null; IfCaptainHasChangedSetLastCaptainAvaialable(planetViewModel.CaptainId, planetViewModel.LastCaptainId); SetRobotsAvailable(planetViewModel.RobotsToSetAvailable); Captain captain = appDbContext.Captains.Where(c => c.Id == planetViewModel.CaptainId.ToString()).FirstOrDefault(); if (captain != null) { captain.IsAvailable = false; explorersTeam = UpdateExplorersTeam(planetViewModel.Robots, captain); planetToUpdate.ExplorersTeam = explorersTeam; } else { planetToUpdate.ExplorersTeam.Captain = null; planetToUpdate.ExplorersTeam.Robots = null; } planetToUpdate.Name = planetViewModel.Name; planetToUpdate.ImageUrl = planetViewModel.ImageUrl; planetToUpdate.Description = planetViewModel.Description; planetToUpdate.Status = status; appDbContext.SaveChanges(); return(new OkObjectResult("Planet succesfully added.")); } catch (Exception exc) { return(StatusCode(StatusCodes.Status500InternalServerError)); }; }
public async void UpdateWithValidData_Ok() { //Arrange var explorersTeam = new ExplorersTeam { Id = Guid.NewGuid(), Name = "A" }; m_repositoryMock.Setup(t => t.SearchAsync(It.IsAny <Pagination>(), It.IsAny <Ordering>(), It.IsAny <IFilter <ExplorersTeam> >())) .ReturnsAsync(new Tuple <int, List <ExplorersTeam> >(1, new List <ExplorersTeam> { explorersTeam })); //Act await m_explorersTeamService.UpdateExplorersTeamAsync(explorersTeam); //Assert m_repositoryMock.Verify(t => t.UpdateAsync(It.IsAny <List <ExplorersTeam> >()), Times.Once); }
public async Task DeleteAsync(ExplorersTeam entity) { m_dataContext.ExplorersTeams.Remove(entity); await m_dataContext.SaveChangesAsync(); }
public async Task CreateAsync(ExplorersTeam entity) { await m_dataContext.ExplorersTeams.AddAsync(entity); await m_dataContext.SaveChangesAsync(); }