public async Task Add_ReturnsHairStyleLinkAdded() { // Arrange _hairStyleLinksContext = _db.SeedHairStyleLinksContext(); int currentHairStyleLinksCount = _db.HairStyleLinks.Count; List <HairStyleLinks> currentHairStyleLinks = _db.HairStyleLinks; HairStyleLinks expected = new HairStyleLinks { Id = 3, LinkName = "bob link 2", LinkUrl = "https://hips.hearstapps.com/hmg-prod.s3.amazonaws.com/images/gettyimages-854996960-1508951083.jpg", HairStyleId = 2 }; // Act HairStyleLinks actual = await _hairStyleLinksContext.Add(expected); int updatedHairStyleLinksCount = _db.HairStyleLinks.Count; _db.HairStyleLinks = new List <HairStyleLinks>(currentHairStyleLinks); // Assert Assert.Equal(expected.Id, actual.Id); Assert.Equal(currentHairStyleLinksCount + 1, updatedHairStyleLinksCount); }
public async Task Edit_ReturnsTrue() { // Arrange _hairStyleLinksContext = _db.SeedHairStyleLinksContext(); ulong id = 2; List <HairStyleLinks> currentHairStyleLinks = _db.HairStyleLinks; HairStyleLinks current = currentHairStyleLinks.FirstOrDefault(c => c.Id == id); HairStyleLinks updated = current.ShallowCopy(); updated.LinkName = "afro links updated"; updated.LinkUrl = "https://cdn.shopify.com/s/files/1/1767/9375/files/lyssamariexo_large.png?v=1568126512"; HairStyleLinks updatedHairStyleLink = new HairStyleLinks { Id = id, LinkName = updated.LinkName, LinkUrl = updated.LinkUrl, HairStyleId = updated.HairStyleId }; bool expected = true; // Act bool actual = await _hairStyleLinksContext.Edit(id, updatedHairStyleLink); HairStyleLinks u = _db.HairStyleLinks.FirstOrDefault(fs => fs.Id == id); _db.HairStyleLinks = new List <HairStyleLinks>(currentHairStyleLinks); // Assert Assert.Equal(expected, actual); Assert.Equal(updatedHairStyleLink.LinkUrl, u.LinkUrl); }
/// <summary> /// Deletes a hairStyleLink by ID /// </summary> /// <param name="id">ID of the hairStyleLink to be deleted</param> /// <exception cref="ResourceNotFoundException"> /// Thrown if the user with the corresponding <seealso cref="id"/> is not found /// </exception> /// <returns>HairStyleLink deleted</returns> public async Task <HairStyleLinks> Delete(ulong id) { HairStyleLinks hairStyleLink = null; if (_context != null) { hairStyleLink = await _context.HairStyleLinks.FindAsync(id); if (hairStyleLink != null) { _context.HairStyleLinks.Remove(hairStyleLink); await _context.SaveChangesAsync(); } else { throw new ResourceNotFoundException("HairStyleLink not found"); } } else { hairStyleLink = HairStyleLinks.Where(u => u.Id == id).FirstOrDefault(); if (hairStyleLink != null) { HairStyleLinks.Remove(hairStyleLink); } else { throw new ResourceNotFoundException("HairStyleLink not found"); } } return(hairStyleLink); }
public async Task Read_ReturnsHairStyleLinksById() { // Arrange _hairStyleLinksContext = _db.SeedHairStyleLinksContext(); ulong id = 1; HairStyleLinks expected = _db.HairStyleLinks.FirstOrDefault(c => c.Id == id); // Act HairStyleLinks actual = await _hairStyleLinksContext.ReadById(id); // Assert Assert.Equal(expected, actual); }
/// <summary> /// Adds a new hairStyleLink /// <para> /// NOTE: Currently this method is not restricted to unique hairStyleLinks, so the operation always succeeds /// </para> /// </summary> /// <param name="hairStyleLink">HairStyleLink to be added</param> /// <returns>HairStyleLink added</returns> public Task <HairStyleLinks> Add(HairStyleLinks hairStyleLink) { HairStyleLinks hairStyleLinkAdded = null; if (_context != null) { _context.HairStyleLinks.Add(hairStyleLink); hairStyleLinkAdded = hairStyleLink; } else { HairStyleLinks.Add(hairStyleLink); hairStyleLinkAdded = hairStyleLink; } return(Task.FromResult(hairStyleLinkAdded)); }
/// <summary> /// Updates an existing hairStyleLink /// </summary> /// <param name="id">ID of the hairStyleLink to be updated</param> /// <param name="updatedHairStyleLink">Updated hairStyleLink object</param> /// <exception cref="ResourceNotFoundException"> /// Thrown if <seealso cref="updatedHairStyleLink"/> does not exist /// </exception> /// <exception cref="DbUpdateConcurrencyException"> /// </exception> /// <returns>Result of the operation</returns> public async Task <bool> Edit(ulong id, HairStyleLinks updatedHairStyleLink) { bool hairStyleLinkUpdated = false; if (_context != null) { HairStyleLinks currentHairStyleLink = await _context.HairStyleLinks.FindAsync(id); try { if (currentHairStyleLink != null) { currentHairStyleLink.LinkName = updatedHairStyleLink.LinkName; currentHairStyleLink.LinkUrl = updatedHairStyleLink.LinkUrl; _context.Entry(currentHairStyleLink).State = EntityState.Modified; await _context.SaveChangesAsync(); hairStyleLinkUpdated = true; } throw new ResourceNotFoundException("HairStyleLink not found"); } catch (DbUpdateConcurrencyException ex) { throw ex; } } else { HairStyleLinks currentHairStyleLink = HairStyleLinks.FirstOrDefault(fs => fs.Id == id); if (currentHairStyleLink != null) { int currentHairStyleLinkIndex = HairStyleLinks.FindIndex(c => c.Id == id); HairStyleLinks[currentHairStyleLinkIndex] = updatedHairStyleLink; hairStyleLinkUpdated = true; } else { throw new ResourceNotFoundException("HairStyleLink not found"); } } return(hairStyleLinkUpdated); }
public async Task <ActionResult <HairStyleLinks> > PostHairStyleLinks([FromBody] HairStyleLinks hairStyleLinks) { if (!_authorizationService.ValidateJWTToken(Request)) { return(Unauthorized(new { errors = new { Token = new string[] { "Invalid token" } }, status = 401 })); } var correspondingHairStyle = await _context.HairStyles.FirstOrDefaultAsync(h => h.Id == hairStyleLinks.HairStyleId); if (correspondingHairStyle == null) { return(NotFound(new { errors = new { HairStyleId = new string[] { "No matching hair style entry was found" } }, status = 404 })); } _context.HairStyleLinks.Add(hairStyleLinks); await _context.SaveChangesAsync(); return(CreatedAtAction("GetHairStyleLinks", new { id = hairStyleLinks.Id }, hairStyleLinks)); }
public async Task Delete_ReturnsHairStyleLinkDeleted() { // Arrange _hairStyleLinksContext = _db.SeedHairStyleLinksContext(); ulong id = 2; List <HairStyleLinks> currentHairStyleLinks = _db.HairStyleLinks; int currentHairStyleLinksCount = _db.HairStyleLinks.Count; HairStyleLinks expected = _db.HairStyleLinks.FirstOrDefault(u => u.Id == id); // Act HairStyleLinks actual = await _hairStyleLinksContext.Delete(id); int updatedHairStyleLinksCount = _db.HairStyleLinks.Count; _db.HairStyleLinks = new List <HairStyleLinks>(currentHairStyleLinks); // Assert Assert.Equal(expected.Id, actual.Id); Assert.Equal(currentHairStyleLinksCount - 1, updatedHairStyleLinksCount); }
public async Task <IActionResult> PutHairStyleLinks(ulong id, [FromBody] HairStyleLinks hairStyleLinks) { if (!_authorizationService.ValidateJWTToken(Request)) { return(Unauthorized(new { errors = new { Token = new string[] { "Invalid token" } }, status = 401 })); } if (id != hairStyleLinks.Id) { return(BadRequest(new { errors = new { Id = new string[] { "ID sent does not match the one in the endpoint" } }, status = 400 })); } var correspondingHairStyle = await _context.HairStyles.FirstOrDefaultAsync(h => h.Id == hairStyleLinks.HairStyleId); if (correspondingHairStyle == null) { return(NotFound(new { errors = new { HairStyleId = new string[] { "No matching hair style entry was found" } }, status = 404 })); } HairStyleLinks hsl = await _context.HairStyleLinks.FindAsync(id); try { if (hsl != null) { hsl.LinkName = hairStyleLinks.LinkName; hsl.LinkUrl = hairStyleLinks.LinkUrl; hsl.HairStyleId = hairStyleLinks.HairStyleId; _context.Entry(hsl).State = EntityState.Modified; await _context.SaveChangesAsync(); return(Ok()); } return(NotFound()); } catch (DbUpdateConcurrencyException) { return(StatusCode(500)); } }
public async Task <IActionResult> PutHairStyleLinks(ulong id, [FromBody] HairStyleLinks hairStyleLinks) { if (!_authorizationService.ValidateJWTCookie(Request)) { return(Unauthorized(new { errors = new { Token = new string[] { "Invalid token" } }, status = 401 })); } if (id != hairStyleLinks.Id) { return(BadRequest(new { errors = new { Id = new string[] { "ID sent does not match the one in the endpoint" } }, status = 400 })); } var correspondingHairStyle = await _context.HairStyles.FirstOrDefaultAsync(h => h.Id == hairStyleLinks.HairStyleId); if (correspondingHairStyle == null) { return(NotFound(new { errors = new { HairStyleId = new string[] { "No matching hair style entry was found" } }, status = 404 })); } _context.Entry(hairStyleLinks).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!HairStyleLinksExists(id)) { return(NotFound()); } else { throw; } } return(NoContent()); }