public async void UpdateEmployeeSkill_Put() { var query = new EmployeeSkillsController(context); var newEmployeeSkill = new EmployeeSkills { Id = 9, SkillsId = 7, Experience = 1, UserId = "a1" }; var newEmployeeSkillToReturn = new EmployeeSkillsToReturn { Id = 9, SkillsId = 7, Experience = 1, UserId = "a1", Skills = new Skills { Id = 7, Name = "ASP.NET Core", Type = 2 }, UserInfo = new UserInfo { Id = "a1", UserName = "******", FirstName = "Sarah", LastName = "West", Email = "*****@*****.**" } }; // https://stackoverflow.com/questions/36856073/the-instance-of-entity-type-cannot-be-tracked-because-another-instance-of-this-t/42475617 var local = context.EmployeeSkills.Local.Where(t => t.Id == 9).FirstOrDefault(); if (local != null) { context.Entry(local).State = EntityState.Detached; // only needed for xUnit testing } var result = await query.PutEmployeeSkills(9, newEmployeeSkill); // async var added = await query.GetEmployeeSkillById(9); // async var addedGoodRequest = Assert.IsType <EmployeeSkillsToReturn>(added.Value); Assert.Equal(newEmployeeSkill.Id, added.Value.Id); Assert.Equal(newEmployeeSkill.SkillsId, added.Value.SkillsId); Assert.Equal(newEmployeeSkill.Experience, added.Value.Experience); Assert.Equal(newEmployeeSkill.UserId, added.Value.UserId); Assert.Equal(Newtonsoft.Json.JsonConvert.SerializeObject(newEmployeeSkillToReturn), Newtonsoft.Json.JsonConvert.SerializeObject(addedGoodRequest)); //Assert.Equal(newEmployeeSkillToReturn, addedGoodRequest); // not sure why the objects aren't considered to be the same //Assert.Equal(newEmployeeSkill, result); // No Content returned so can't check it without changing return value }
public async void GetEmployeeSkillById() { var query = new EmployeeSkillsController(context); var result = await query.GetEmployeeSkillById(5); // async var skill5 = new EmployeeSkillsToReturn { Id = 5, SkillsId = 2, Experience = 3, UserId = "a2", UserInfo = new UserInfo { Id = "a2", UserName = "******", FirstName = "John", LastName = "Doe", Email = "*****@*****.**", IsManager = null }, Skills = new Skills { Id = 2, Name = "Javascript", Type = 1 } }; Assert.Equal(2, result.Value.SkillsId); Assert.Equal(3, result.Value.Experience); Assert.Equal("a2", result.Value.UserId); Assert.Equal(Newtonsoft.Json.JsonConvert.SerializeObject(skill5), Newtonsoft.Json.JsonConvert.SerializeObject(result.Value)); // not sure why the objects aren't considered to be the same }
public async void PostExployeeSkills_Add() { var query = new EmployeeSkillsController(context); var newEmployeeSkill = new EmployeeSkills { Id = 10, SkillsId = 2, Experience = 3, UserId = "a3" }; var newEmployeeSkillToReturn = new EmployeeSkillsToReturn { Id = 10, SkillsId = 2, Experience = 3, UserId = "a3", Skills = new Skills { Id = 2, Name = "Javascript", Type = 1 }, UserInfo = new UserInfo { Id = "a3", UserName = "******", FirstName = "Tim", LastName = "Wills", Email = "*****@*****.**", IsManager = null } }; var result = await query.PostEmployeeSkills(newEmployeeSkill); // async var added = await query.GetEmployeeSkillById(10); // async var resultGoodRequest = Assert.IsType <CreatedAtActionResult>(result.Result); var addedGoodRequest = Assert.IsType <EmployeeSkillsToReturn>(added.Value); Assert.Equal(newEmployeeSkill.Id, added.Value.Id); Assert.Equal(newEmployeeSkill.SkillsId, added.Value.SkillsId); Assert.Equal(newEmployeeSkill.Experience, added.Value.Experience); Assert.Equal(newEmployeeSkill.UserId, added.Value.UserId); Assert.Equal(newEmployeeSkill, resultGoodRequest.Value); Assert.Equal(Newtonsoft.Json.JsonConvert.SerializeObject(newEmployeeSkillToReturn), Newtonsoft.Json.JsonConvert.SerializeObject(addedGoodRequest)); //Assert.Equal(newEmployeeSkillToReturn, addedGoodRequest); // not sure why the objects aren't considered to be the same }