public async Task EditRobotAsync(int Id, UpdateNameBindingModel model)
        {
            var robot = await GetRobotByIdAsync(Id);

            robot.Name = model.Name;

            await this.DbContext.SaveChangesAsync();
        }
        public async Task <IActionResult> Edit(int Id, UpdateNameBindingModel model)
        {
            if (model.Name.Length < 3)
            {
                TempData["InvalidName"] = "Name must be at least 3 characters long";
                return(this.View());
            }
            await robotDataService.EditRobotAsync(Id, model);

            return(RedirectToAction("AllRobots", "Users"));
        }
Example #3
0
        public void EditingRobot_ShouldEditRobotName()
        {
            var users = new[]
            {
                new User()
                {
                    Id = "111"
                },
                new User()
                {
                    Id = "222"
                },
                new User()
                {
                    Id = "333"
                },
                new User()
                {
                    Id = "444"
                }
            };
            var mockUserStore   = new Mock <IUserStore <User> >();
            var mockUserManager = new Mock <UserManager <User> >(
                mockUserStore.Object, null, null, null, null, null, null, null, null);

            mockUserManager.Setup(um => um.GetUserAsync(null))
            .ReturnsAsync(users[1]);


            this.dbContext     = MockDbContext.GetContext();
            this.service       = new RobotDataService(dbContext, MockAutoMapper.GetAutoMapper(), mockUserManager.Object);
            this.armorService  = new ArmorDataService(dbContext, this.service, MockAutoMapper.GetAutoMapper(), mockUserManager.Object);
            this.weaponService = new WeaponDataService(dbContext, this.service, MockAutoMapper.GetAutoMapper(), mockUserManager.Object);

            var controller = new RobotController(mockUserManager.Object, MockAutoMapper.GetAutoMapper(), this.service, this.weaponService, this.armorService);

            controller.ControllerContext = new ControllerContext()
            {
                HttpContext = new DefaultHttpContext()
                {
                    User = new ClaimsPrincipal(new ClaimsIdentity(new[]
                    {
                        new Claim(ClaimTypes.Role, "Admin")
                    }))
                }
            };
            var user2 = controller.ControllerContext.HttpContext.User;


            var robot = new Models.Robots.Robot()
            {
                Id            = 1,
                BaseHealth    = 1000,
                CurrentHealth = 1000,
                BaseDamage    = 100,
                Type          = "Fire",
                ImageUrl      = "https://i.ytimg.com/vi/Rrb4jW_uJxE/hqdefault.jpg"
            };

            this.dbContext.Robots.Add(robot);
            this.dbContext.SaveChanges();
            var updateNameBindingModel = new UpdateNameBindingModel()
            {
                Name = "Edited"
            };
            var result = controller.Edit(robot.Id, updateNameBindingModel);

            //service.CreateRobotAsync(user2, robot);
            Assert.AreEqual("Edited", dbContext.Robots.First().Name);
        }