public override async Task <PostTodoItemResponse> PostTodoItem(PostTodoItemRequest request, ServerCallContext context) { var newTodo = new Todo { Id = Guid.NewGuid().ToString(), Name = request.Name, IsComplete = false }; await _unitOfWork.TodoItems.Add(newTodo); var response = new PostTodoItemResponse { Todo = newTodo }; return(response); }
public async Task OkPostTodoItemTest() { var request = new PostTodoItemRequest { Name = "PostTodoTestName" }; var fakeServerCallContext = TestServerCallContext.Create("fooMethod", null, DateTime.UtcNow.AddHours(1), new Metadata(), CancellationToken.None, "127.0.0.1", null, null, (metadata) => TaskUtils.CompletedTask, () => new WriteOptions(), (writeOptions) => { }); var actual = await implement.PostTodoItem(request, fakeServerCallContext); // リクエストで受け取ったNameが設定されている Assert.Equal(request.Name, actual.Todo.Name); // IsCompleteの初期値はfalseである Assert.Equal(false, actual.Todo.IsComplete); // 生成されたTodoがDBに登録されている Assert.Contains(actual.Todo, expectedTodoItems); }