public void GetIdCardMustReturnWelcomeMessageIfCardIsRegistered() { //arrange var _dbContext = AllocateInMemoryDatabaseContext("testDB2"); var employeeInputData = new EmployeeInputData { CardIdNumber = "KAS123ZKLX1234", EmployeeId = "AKJSDL91283", Name = "Pavel Vjalicin", Email = "*****@*****.**", MobileNumber = "+1234 1234 1234 1234" }; var employee = new Employee(employeeInputData); _dbContext.Employees.Add(employee); _dbContext.SaveChanges(); var controller = new EmployeeController(_dbContext); //act var result = controller.Get(employee.CardIdNumber); //assert var okResult = Assert.IsType <OkObjectResult>(result); Assert.Equal("Welcome " + employee.Name, okResult.Value); }
public void EmployeeMustBeAbleToUpdateCredit() { //arrange var _dbContext = AllocateInMemoryDatabaseContext("testDB4"); var employeeInputData = new EmployeeInputData { CardIdNumber = "KAS123ZKLX1234", EmployeeId = "AKJSDL91283", Name = "Pavel Vjalicin", Email = "*****@*****.**", MobileNumber = "+1234 1234 1234 1234" }; var employee = new Employee(employeeInputData); _dbContext.Employees.Add(employee); _dbContext.SaveChanges(); var controller = new EmployeeController(_dbContext); //act var putResult = controller.PutCredit(employee.CardIdNumber, 255.55m); var getResult = controller.GetCredit(employee.CardIdNumber); //assert Assert.IsType <OkResult>(putResult); var getOkResult = Assert.IsType <OkObjectResult>(getResult); Assert.Equal(255.55m, getOkResult.Value); }
private async Task <Employee> PopulateEntityDataWithViewData(EmployeeInputData viewData, Guid entityId) { var getCurrent = await _repository.GetByIdAsync <Employee>(entityId); getCurrent.ExperienceLevel = viewData.ExperienceLevel != getCurrent.ExperienceLevel ? viewData.ExperienceLevel : getCurrent.ExperienceLevel; getCurrent.FirstName = viewData.FirstName ?? getCurrent.FirstName; getCurrent.LastName = viewData.LastName ?? getCurrent.LastName; getCurrent.OfficeId = viewData?.OfficeId ?? getCurrent.OfficeId; getCurrent.ProfileImage = viewData.ProfileImage ?? getCurrent.ProfileImage; getCurrent.Salary = viewData?.Salary ?? getCurrent.Salary; getCurrent.VacationDays = viewData?.VacationDays ?? getCurrent.VacationDays; getCurrent.StartingDate = viewData?.StartingDate ?? getCurrent.StartingDate; return(getCurrent); }
public Employee Create(EmployeeInputData viewData) { return(new Employee { ExperienceLevel = viewData.ExperienceLevel, FirstName = viewData.FirstName, LastName = viewData.LastName, OfficeId = viewData.OfficeId, CompanyId = viewData.CompanyId, ProfileImage = viewData.ProfileImage, Salary = viewData.Salary, VacationDays = viewData.VacationDays, StartingDate = viewData.StartingDate }); }
public async Task <EntityActionOutcome> UpdateEntityAsync(EmployeeInputData viewData, Guid id) { var validator = new EmployeeDataInputValidator(); var result = validator.Validate(viewData); if (result.IsValid == false) { return(EntityActionOutcome.UpdateFailed); } var updateSuccessful = await _repository.UpdateAsync( await PopulateEntityDataWithViewData(viewData, id)); if (updateSuccessful == null) { return(EntityActionOutcome.EntityNotFound); } return(EntityActionOutcome.Success); }
public async Task <EntityActionOutcome> CreateEntityAsync(EmployeeInputData viewData) { var newEntity = _factory.Create(viewData); var validator = new EmployeeDataInputValidator(); var result = validator.Validate(viewData); if (result.IsValid == false) { return(EntityActionOutcome.MissingFullEntityData); } var upsertSuccessful = await _repository.AddAsync(newEntity); if (upsertSuccessful == null) { return(EntityActionOutcome.CreateFailed); } return(EntityActionOutcome.Success); }
public IActionResult Put([FromBody] EmployeeInputData employeeInputData) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var employee = _context.Employees.Find(employeeInputData.CardIdNumber); if (employee == null) { return(NotFound("No employee found with this card id")); } employee.Update(employeeInputData); _context.Employees.Update(employee); _context.SaveChanges(); return(Ok()); }
public void CardIdMustOnlyCantainAlphaNumericCharacters() { //arrange var employeeInputData = new EmployeeInputData { CardIdNumber = "KAS12{}3Z KLX1234", EmployeeId = "AKJSDL91283", Name = "Pavel Vjalicin", Email = "*****@*****.**", MobileNumber = "+1234 1234 1234 1234" }; var employee = new Employee(employeeInputData); //act //CardID Must only contain alphanumeric characters var modelError = GetModelError(employee); //assert Assert.True(modelError.ErrorMessage != null); }
public void EmployeeIsInitialisedProperlyFromEmployeeInputData() { //arange var employeeInputData = new EmployeeInputData { CardIdNumber = "KAS123ZKLX1234", EmployeeId = "AKJSDL91283", Name = "Pavel Vjalicin", Email = "*****@*****.**", MobileNumber = "+1234 1234 1234 1234" }; var employee = new Employee(employeeInputData); //act and assert Assert.Equal(0, employee.Credit); Assert.Equal("1234", employee.PinNumber); Assert.Equal(employeeInputData.CardIdNumber, employee.CardIdNumber); Assert.Equal(employeeInputData.EmployeeId, employee.EmployeeId); Assert.Equal(employeeInputData.Name, employee.Name); Assert.Equal(employeeInputData.Email, employee.Email); Assert.Equal(employeeInputData.MobileNumber, employee.MobileNumber); }
public IActionResult Post([FromBody] EmployeeInputData employeeInputData) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } //Checking the databse if employee with cardId already exists. var existingEmployee = _context.Employees.Find(employeeInputData.CardIdNumber); if (existingEmployee != null) { return(BadRequest("Employee with this card id already exists")); } var employee = new Employee(employeeInputData); _context.Employees.Add(employee); _context.SaveChanges(); return(Ok()); }
public async Task <HttpStatusCode> Update(EmployeeInputData inputData, Guid id) { var updateEntityOutcome = await _service.UpdateEntityAsync(inputData, id); return(_resultFactory.Create(updateEntityOutcome)); }
public async Task <HttpStatusCode> Create(EmployeeInputData inputData) { var createEntityOutcome = await _service.CreateEntityAsync(inputData); return(_resultFactory.Create(createEntityOutcome)); }