public async Task GivenInvalidModels_WhenPostLog_ThenReturnBadRequest(string cardNo, string password) { // Arrange var employee = _fixture.Context.Employees.ToList().ElementAtOrDefault(4); var viewModel = new LogInOutViewModel { CardNo = (cardNo == "valid_cardNo") ? employee.CardNo : cardNo, Password = (password == "valid_password") ? DefaultAdmin.Password : password, }; // Act var response = await _fixture.Client.PostAsJsonAsync(API_URL, viewModel); // Assert Assert.Equal(HttpStatusCode.BadRequest, response.StatusCode); }
public async Task PostLog_ThenReturnOkWithTimeIn() { // Arrange var employee = _fixture.Context.Employees.Last(); var viewModel = new LogInOutViewModel { CardNo = employee.CardNo, Password = DefaultAdmin.Password, }; // Act var response = await _fixture.Client.PostAsJsonAsync(API_URL, viewModel); // Assert response.EnsureSuccessStatusCode(); var updatedLog = _fixture.Context.Logs.Where(m => m.EmployeeId == employee.Id).OrderByDescending(m => m.Created).First(); Assert.NotNull(updatedLog.TimeIn); Assert.Null(updatedLog.TimeOut); }
public async Task GivenInactiveEmployee_WhenPostLog_ThenReturnBadRequest() { // Arrange var employee = _fixture.Context.Employees.ToList().ElementAtOrDefault(4); // Update the employee with inactive status employee.Status = Status.Inactive; _fixture.Context.Entry(employee).State = EntityState.Modified; await _fixture.Context.SaveChangesAsync(); var viewModel = new LogInOutViewModel { CardNo = employee.CardNo, Password = DefaultAdmin.Password, }; // Act var response = await _fixture.Client.PostAsJsonAsync(API_URL, viewModel); // Assert Assert.Equal(HttpStatusCode.BadRequest, response.StatusCode); }