public async Task Create_Should_Add_TodoItem_In_Database() { // Arrange var context = _host.Services.GetRequiredService <DatabaseContext>(); var user = await context.Users.Where(u => u.Email == "*****@*****.**").FirstOrDefaultAsync(); var todoListFromDatabase = Builder <TodoList> .CreateNew().With(tl => tl.Id = Guid.NewGuid()).With(tl => tl.CreatedBy = user.Id).Build(); context.TodoLists.Add(todoListFromDatabase); context.SaveChanges(); var createTodoItemModel = Builder <CreateTodoItemModel> .CreateNew().With(cti => cti.TodoListId = todoListFromDatabase.Id).Build(); // Act var apiResponse = await _client.PostAsync("/api/todoItems", new JsonContent(createTodoItemModel)); // Assert var response = JsonConvert.DeserializeObject <ApiResult <CreateTodoItemResponseModel> >(await apiResponse.Content.ReadAsStringAsync()); var todoItemFromDatabase = await context.TodoItems.Where(ti => ti.Id == response.Result.Id).FirstOrDefaultAsync(); CheckResponse.Succeded(response, 201); todoItemFromDatabase.Should().NotBeNull(); todoItemFromDatabase.Title.Should().Be(createTodoItemModel.Title); todoItemFromDatabase.List.Id.Should().Be(todoListFromDatabase.Id); }
public async Task ChangePassword_Should_Update_User_Password_If_OldPassword_And_NewPassword_Are_Ok() { // Arrange var user = Builder <ApplicationUser> .CreateNew() .With(u => u.UserName = "******") .With(u => u.Email = "*****@*****.**") .With(u => u.EmailConfirmed = true) .Build(); var userManager = _host.Services.GetRequiredService <UserManager <ApplicationUser> >(); await userManager.CreateAsync(user, "Password.1!"); var changePasswordModel = Builder <ChangePasswordModel> .CreateNew() .With(cu => cu.OldPassword = "******") .With(cu => cu.NewPassword = "******") .Build(); // Act var apiResponse = await _client.PutAsync($"/api/users/{user.Id}/changePassword", new JsonContent(changePasswordModel)); // Assert apiResponse.StatusCode.Should().Be(HttpStatusCode.OK); var response = JsonConvert.DeserializeObject <ApiResult <BaseResponseModel> >(await apiResponse.Content.ReadAsStringAsync()); CheckResponse.Succeded(response); response.Result.Id.Should().Be(user.Id); }
public async Task ConfirmEmail_Should_Update_User_Status() { // Arrange var user = Builder <ApplicationUser> .CreateNew() .With(u => u.UserName = "******") .With(u => u.Email = "*****@*****.**") .Build(); var context = (await GetNewHostAsync()).Services.GetRequiredService <DatabaseContext>(); var userManager = _host.Services.GetRequiredService <UserManager <ApplicationUser> >(); await userManager.CreateAsync(user, "Password.1!"); var token = await userManager.GenerateEmailConfirmationTokenAsync(user); var confirmEmailModel = Builder <ConfirmEmailModel> .CreateNew() .With(ce => ce.UserId = user.Id) .With(ce => ce.Token = token) .Build(); // Act var apiResponse = await _client.PostAsync("/api/users/confirmEmail", new JsonContent(confirmEmailModel)); // Assert var response = JsonConvert.DeserializeObject <ApiResult <ConfirmEmailResponseModel> >(await apiResponse.Content.ReadAsStringAsync()); var userFromDatabase = await context.Users.FirstOrDefaultAsync(u => u.Id == user.Id); CheckResponse.Succeded(response); response.Result.Confirmed.Should().BeTrue(); userFromDatabase.EmailConfirmed.Should().BeTrue(); }
public async Task Update_Should_Update_Todo_Item_From_Database() { // Arrange var context = _host.Services.GetRequiredService <DatabaseContext>(); var user = await context.Users.Where(u => u.Email == "*****@*****.**").FirstOrDefaultAsync(); var todoListFromDatabase = Builder <TodoList> .CreateNew().With(tl => tl.Id = Guid.NewGuid()).With(tl => tl.CreatedBy = user.Id).Build(); var todoItemFromDatabase = Builder <TodoItem> .CreateNew().With(ti => ti.Id = Guid.NewGuid()).With(ti => ti.CreatedBy = user.Id).Build(); todoListFromDatabase.Items.Add(todoItemFromDatabase); context.TodoLists.Add(todoListFromDatabase); context.SaveChanges(); var updateTodoItemModel = Builder <UpdateTodoItemModel> .CreateNew() .With(cti => cti.TodoListId = todoListFromDatabase.Id) .With(cti => cti.Title = "UpdateTodoItemTitle") .With(cti => cti.Body = "UpdateTodoItemBody").Build(); // Act var apiResponse = await _client.PutAsync($"/api/todoItems/{todoItemFromDatabase.Id}", new JsonContent(updateTodoItemModel)); // Assert context = (await GetNewHostAsync()).Services.GetRequiredService <DatabaseContext>(); var response = JsonConvert.DeserializeObject <ApiResult <CreateTodoItemResponseModel> >(await apiResponse.Content.ReadAsStringAsync()); var modifiedTodoItemFromDatabase = await context.TodoItems.Where(ti => ti.Id == response.Result.Id).FirstOrDefaultAsync(); CheckResponse.Succeded(response); modifiedTodoItemFromDatabase.Should().NotBeNull(); modifiedTodoItemFromDatabase.Title.Should().Be(updateTodoItemModel.Title); modifiedTodoItemFromDatabase.Body.Should().Be(updateTodoItemModel.Body); }
public async Task Delete_Should_Delete_Todo_Item_From_Database() { // Arrange var context = _host.Services.GetRequiredService <DatabaseContext>(); var user = await context.Users.Where(u => u.Email == "*****@*****.**").FirstOrDefaultAsync(); var todoItemFromDatabase = Builder <TodoItem> .CreateNew().With(ti => ti.Id = Guid.NewGuid()).With(ti => ti.CreatedBy = user.Id).Build(); var todoListFromDatabase = Builder <TodoList> .CreateNew().With(tl => tl.Id = Guid.NewGuid()).With(tl => tl.CreatedBy = user.Id).Build(); todoListFromDatabase.Items.Add(todoItemFromDatabase); context.TodoLists.Add(todoListFromDatabase); context.SaveChanges(); // Act var apiResponse = await _client.DeleteAsync($"/api/todoItems/{todoItemFromDatabase.Id}"); // Assert var response = JsonConvert.DeserializeObject <ApiResult <BaseResponseModel> >(await apiResponse.Content.ReadAsStringAsync()); var deletedTodoListFromDatabase = await context.TodoItems.Where(ti => ti.Id == response.Result.Id).FirstOrDefaultAsync(); CheckResponse.Succeded(response); deletedTodoListFromDatabase.Should().BeNull(); }
public async Task Get_Todo_Lists_Should_Return_All_Todo_Lists_For_Specified_User_From_Database() { // Arrange var context = _host.Services.GetRequiredService <DatabaseContext>(); var user = await context.Users.Where(u => u.Email == "*****@*****.**").FirstOrDefaultAsync(); context.TodoLists.RemoveRange(context.TodoLists.ToList()); var todoLists = Builder <TodoList> .CreateListOfSize(10).All().With(tl => tl.Id = Guid.NewGuid()).With(tl => tl.CreatedBy = user.Id).Build(); var todoListsNotBelongToTheUser = Builder <TodoList> .CreateListOfSize(10).All() .With(tl => tl.Id = Guid.NewGuid()).With(tl => tl.CreatedBy = Guid.NewGuid().ToString()).Build(); context.TodoLists.AddRange(todoLists); context.TodoLists.AddRange(todoListsNotBelongToTheUser); context.SaveChanges(); // Act var apiResponse = await _client.GetAsync($"/api/todoLists"); // Assert var response = JsonConvert.DeserializeObject <ApiResult <IEnumerable <TodoListResponseModel> > >(await apiResponse.Content.ReadAsStringAsync()); CheckResponse.Succeded(response); response.Result.Should().HaveCount(10); }
public async Task Login_Should_Return_User_Informations_And_Token() { // Arrange // Act var apiResponse = await _client.GetAsync("/api/WeatherForecast"); // Assert var response = JsonConvert.DeserializeObject <ApiResult <IEnumerable <WeatherForecastResponseModel> > >(await apiResponse.Content.ReadAsStringAsync()); CheckResponse.Succeded(response); response.Result.Should().HaveCount(5); }
public async Task Login_Should_Return_User_Informations_And_Token() { // Arrange var loginUserModel = Builder <LoginUserModel> .CreateNew() .With(cu => cu.Username = "******") .With(cu => cu.Password = "******") .Build(); // Act var apiResponse = await _client.PostAsync("/api/users/authenticate", new JsonContent(loginUserModel)); // Assert var response = JsonConvert.DeserializeObject <ApiResult <LoginResponseModel> >(await apiResponse.Content.ReadAsStringAsync()); CheckResponse.Succeded(response); response.Result.Username.Should().Be("nuyonu"); response.Result.Email.Should().Be("*****@*****.**"); response.Result.Token.Should().NotBeNullOrEmpty(); }
public async Task Create_Should_Add_TodoList_In_Database() { // Arrange var host = _host; var context = _host.Services.GetRequiredService <DatabaseContext>(); var createTodoListModel = Builder <CreateTodoListModel> .CreateNew().Build(); // Act var apiResponse = await _client.PostAsync("/api/todoLists", new JsonContent(createTodoListModel)); // Assert var response = JsonConvert.DeserializeObject <ApiResult <CreateTodoListResponseModel> >(await apiResponse.Content.ReadAsStringAsync()); var todoListFromDatabase = await context.TodoLists.Where(u => u.Id == response.Result.Id).FirstOrDefaultAsync(); CheckResponse.Succeded(response, 201); todoListFromDatabase.Should().NotBeNull(); todoListFromDatabase.Title.Should().Be(createTodoListModel.Title); }
public async Task Create_User_Should_Add_User_To_Database() { // Arrange var context = _host.Services.GetRequiredService <DatabaseContext>(); var createModel = Builder <CreateUserModel> .CreateNew() .With(cu => cu.Email = "*****@*****.**") .With(cu => cu.Username = "******") .With(cu => cu.Password = "******") .Build(); // Act var apiResponse = await _client.PostAsync("/api/users", new JsonContent(createModel)); // Assert apiResponse.StatusCode.Should().Be(HttpStatusCode.OK); var response = JsonConvert.DeserializeObject <ApiResult <CreateUserResponseModel> >(await apiResponse.Content.ReadAsStringAsync()); CheckResponse.Succeded(response, 201); context.Users.Should().Contain(u => u.Id == response.Result.Id.ToString()); }
public async Task GetAllByListId_Should_Return_All_Todo_Items_From_Specific_List() { // Arrange var context = _host.Services.GetRequiredService <DatabaseContext>(); var user = await context.Users.Where(u => u.Email == "*****@*****.**").FirstOrDefaultAsync(); var todoListFromDatabase = Builder <TodoList> .CreateNew().With(tl => tl.Id = Guid.NewGuid()).With(tl => tl.CreatedBy = user.Id).Build(); todoListFromDatabase.Items.AddRange(Builder <TodoItem> .CreateListOfSize(25).All().With(ti => ti.Id = Guid.NewGuid()).Build()); var todoListFromAnotherUsers = Builder <TodoList> .CreateListOfSize(10).All() .With(tl => tl.Id = Guid.NewGuid()) .With(tl => tl.CreatedBy = Guid.NewGuid().ToString()) .Build(); foreach (var todoList in todoListFromAnotherUsers) { todoList.Items.AddRange(Builder <TodoItem> .CreateListOfSize(10).All().With(ti => ti.Id = Guid.NewGuid()).Build()); } context.TodoLists.Add(todoListFromDatabase); context.TodoLists.AddRange(todoListFromAnotherUsers); context.SaveChanges(); // Act var apiResponse = await _client.GetAsync($"/api/todoLists/{todoListFromDatabase.Id}/todoItems"); // Assert var response = JsonConvert.DeserializeObject <ApiResult <IEnumerable <TodoItemResponseModel> > >(await apiResponse.Content.ReadAsStringAsync()); CheckResponse.Succeded(response); response.Result.Should().NotBeNullOrEmpty(); response.Result.Should().HaveCount(25); response.Result.Should().BeEquivalentTo(todoListFromDatabase.Items, options => options.Including(tl => tl.Id)); }