public IActionResult Get(Guid id) { var userId = GetUserIdFromContext(); if (id.Equals(Guid.Empty)) { return(BadRequest()); } var dataModel = _todoRepository.Get(id, userId); if (dataModel == null) { return(NotFound()); } var model = new TodoApiModel { id = dataModel.Id, title = dataModel.Title, completed = dataModel.IsCompleted }; return(new ObjectResult(model)); }
public void Calls_TodoRepository_Update() { // Arrange var testModel = new TodoApiModel() { id = Guid.NewGuid(), title = "Todo 1", completed = false }; TodoDataModel dataModelSentToRepository = null; _mockTodoRepository.Setup(t => t.Update(It.IsAny <TodoDataModel>())) .Callback <TodoDataModel>(m => dataModelSentToRepository = m); // Act _objectUnderTest.Update(testModel.id, testModel); // Assert _mockTodoRepository.Verify(t => t.Update(It.IsAny <TodoDataModel>()), Times.Once()); var expectedDataModel = new TodoDataModel() { Id = testModel.id, IsCompleted = testModel.completed, Title = testModel.title, UserId = _testUserId }; dataModelSentToRepository.ShouldBeEquivalentTo(expectedDataModel); }
public void Returns_TodoApiModel_If_Repository_Get_Returns_DataModel() { // Arrange var id = Guid.NewGuid(); var repositoryGetResult = new TodoDataModel { Id = id, IsCompleted = false, Title = "A saved todo", UserId = _testUserId }; _mockTodoRepository.Setup(x => x.Get(id, _testUserId)) .Returns(repositoryGetResult); // Act var actualResult = _objectUnderTest.Get(id); // Assert Assert.IsType <ObjectResult>(actualResult); var objectResult = actualResult as ObjectResult; var expectedResult = new TodoApiModel { id = repositoryGetResult.Id, completed = repositoryGetResult.IsCompleted, title = repositoryGetResult.Title }; var objectResultTodoModel = objectResult?.Value as TodoApiModel; objectResultTodoModel.ShouldBeEquivalentTo(expectedResult); }
public void Put(int id, [FromBody] TodoApiModel model) { var todoItem = _todoService.Todos .FirstOrDefault(todo => todo.Id == id); todoItem.IsComplete = model?.IsComplete ?? todoItem.IsComplete; todoItem.Name = model?.Name ?? todoItem.Name; todoItem.Description = model?.Description ?? todoItem.Description; // null chain operator: ^ ^ :null coelesce }
private async Task TestGet(TodoApiClient client, TodoApiModel model) { var single = await client.GetAsync(model.Id); Assert.Equal(model.Task, single.Task); var all = await client.GetAllAsync(); Assert.NotEmpty(all.Where(x => x.Id == model.Id && x.Task == model.Task)); }
private async Task TestDelete(TodoApiClient client, TodoApiModel model) { var deletedTodo = await client.DeleteAsync(model.Id); await Assert.ThrowsAsync <ApiException>(async() => await client.GetAsync(model.Id)); var all = await client.GetAllAsync(); Assert.Empty(all.Where(x => x.Id == model.Id)); }
private async Task <TodoApiModel> TestUpdate(TodoApiClient client, TodoApiModel model, string task) { var updateRequest = new TodoRequestApiModel { Task = task }; var updatedTodo = await client.PutAsync(model.Id, updateRequest); await TestGet(client, updatedTodo); return(updatedTodo); }
public void Throws_InvalidOperationException_If_A_Valid_UserId_Cannot_Be_Found_In_Claims(string userId) { // Arrange _objectUnderTest.UserId = () => userId; var testModel = new TodoApiModel() { id = Guid.NewGuid(), title = "My new todo", completed = false }; // Act & Assert Assert.Throws <InvalidOperationException>(() => _objectUnderTest.Add(testModel)); }
public void Returns_BadRequest_If_Todo_Id_Is_Empty() { // Arrange var testModel = new TodoApiModel() { id = Guid.Empty, title = "My new todo", completed = false }; // Act var actualResult = _objectUnderTest.Add(testModel); // Assert Assert.IsType <BadRequestResult>(actualResult); }
public void Returns_NoContentResult_On_Success() { // Arrange var testModel = new TodoApiModel() { id = Guid.NewGuid(), title = "Todo 1", completed = false }; // Act var actualResult = _objectUnderTest.Update(testModel.id, testModel); // Assert Assert.IsType <NoContentResult>(actualResult); }
public void Returns_BadRequest_If_Todo_Title_Is_Not_Set(string title) { // Arrange var testModel = new TodoApiModel() { id = Guid.NewGuid(), title = title, completed = false }; // Act var actualResult = _objectUnderTest.Update(testModel.id, testModel); // Assert Assert.IsType <BadRequestResult>(actualResult); }
public void Returns_BadRequest_If_Id_From_Route_Does_Not_Match_Item_Id() { // Arrange var modelId = Guid.NewGuid(); var routeId = Guid.NewGuid(); var testModel = new TodoApiModel { id = modelId, title = "My updated todo", completed = false }; // Act var actualResult = _objectUnderTest.Update(routeId, testModel); // Assert Assert.IsType <BadRequestResult>(actualResult); }
public IActionResult Update(Guid id, [FromBody] TodoApiModel item) { var userId = GetUserIdFromContext(); if (item == null || item.id != id || string.IsNullOrWhiteSpace(item.title)) { return(BadRequest()); } _todoRepository.Update( new TodoDataModel { Id = item.id, Title = item.title, IsCompleted = item.completed, UserId = userId }); return(new NoContentResult()); }
public IActionResult Add([FromBody] TodoApiModel item) { var userId = GetUserIdFromContext(); if (item == null || item.id.Equals(Guid.Empty) || string.IsNullOrWhiteSpace(item.title)) { return(BadRequest()); } _todoRepository.Add( new TodoDataModel { Id = item.id, Title = item.title, IsCompleted = item.completed, UserId = userId }); return(CreatedAtRoute("GetTodo", new { item.id }, item)); }
public void Returns_CreatedAtRoute_On_Success() { // Arrange var testModel = new TodoApiModel() { id = Guid.NewGuid(), title = "Todo 1", completed = false }; // Act var actualResult = _objectUnderTest.Add(testModel); // Assert Assert.IsType <CreatedAtRouteResult>(actualResult); var createdAtRouteResult = actualResult as CreatedAtRouteResult; Assert.Equal("GetTodo", createdAtRouteResult.RouteName); createdAtRouteResult.Value.ShouldBeEquivalentTo(testModel); }
public ActionResult <string> gravar([FromBody] TodoApiModel todo) { //exemplo return("Exemplo Post: Id: " + 20 + " Nome: " + todo.Name.ToString()); }
public void Post([FromBody] TodoApiModel model) { _todoService.Todos.Add(model); }
public ActionResult <string> editar(int id, [FromBody] TodoApiModel todo) { return("Exemplo Put: Id: " + id + " Nome: " + todo.Name); }