public void EquipArmor_ShouldAddArmorToRobot() { 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" }; var armor = new Models.Items.Armor() { Name = "mechoo", ArmorPoints = 101, DurabilityLossAmount = 15, ImageUrl = "kk", Price = 101 }; dbContext.Robots.Add(robot); dbContext.Armors.Add(armor); this.dbContext.SaveChanges(); var result = controller.EquipArmor(robot.Id, armor.Id); this.dbContext.SaveChanges(); Assert.AreEqual(1, robot.Armors.Count()); }