public async Task<IHttpActionResult> PostCustomer(Customer customer) { if (!ModelState.IsValid) { return BadRequest(ModelState); } db.Customers.Add(customer); try { await db.SaveChangesAsync(); } catch (DbUpdateException) { if (CustomerExists(customer.CustomerID)) { return Conflict(); } else { throw; } } return CreatedAtRoute("DefaultApi", new { id = customer.CustomerID }, customer); }
// PUT api/Customers/5 public async Task<IHttpActionResult> PutCustomer(string id, Customer customer) { if (!ModelState.IsValid) { return BadRequest(ModelState); } if (id != customer.CustomerID) { return BadRequest(); } db.Entry(customer).State = EntityState.Modified; try { await db.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!CustomerExists(id)) { return NotFound(); } else { throw; } } return StatusCode(HttpStatusCode.NoContent); }
public async Task ShouldNotAllowUpdatingACustomerAsAnother() { // Arrange var repo = new DummyCustomerRepository(); var controller = new TestableController(repo); var customer = new Customer {CustomerID = "1"}; // Act var result = await controller.PutCustomer("2", customer); // Assert Assert.IsInstanceOfType(result, typeof (BadRequestResult)); }
public async Task<IHttpActionResult> PostCustomer(Customer customer) { if (!ModelState.IsValid) { return BadRequest(ModelState); } _repo.Add(customer); await _repo.SaveChangesAsync(); return CreatedAtRoute("DefaultApi", new { id = customer.CustomerID }, customer); }
public async Task ShouldAllowUpdatingACustomer() { // Arrange var repo = new DummyCustomerRepository(); var controller = new TestableController(repo); var customer = new Customer {CustomerID = "1"}; // Act var result = await controller.PutCustomer("1", customer) as StatusCodeResult; // Assert Assert.IsNotNull(result); Assert.AreEqual(HttpStatusCode.NoContent, result.StatusCode); }
// PUT api/Customers/5 public async Task<IHttpActionResult> PutCustomer(string id, Customer customer) { if (!ModelState.IsValid) { return BadRequest(ModelState); } if (id != customer.CustomerID) { return BadRequest(); } _repo.Update(customer); await _repo.SaveChangesAsync(); return StatusCode(HttpStatusCode.NoContent); }
public async Task ShouldAcceptPostingANewCustomer() { // Arrange var repo = new DummyCustomerRepository(); var controller = new TestableController(repo); var newCustomer = new Customer { CompanyName = "The new Company" }; // Act var result = await controller.PostCustomer(newCustomer) as CreatedAtRouteNegotiatedContentResult<Customer>; // Assert Assert.IsNotNull(result); var addedCustomer = result.Content; Assert.AreEqual("DefaultApi", result.RouteName); Assert.AreEqual(addedCustomer.CustomerID, result.RouteValues["Id"]); Assert.IsNotNull(addedCustomer.CustomerID); Assert.IsNotNull(addedCustomer.CompanyName); Assert.IsNull(addedCustomer.ContactName); }
public void Update(Customer customer) { }
public Customer Add(Customer customer) { customer.CustomerID = Environment.TickCount.ToString(); _data.Add(customer); return customer; }
public void Update(Customer customer) { db.Entry(customer).State = EntityState.Modified; }