public async Task Should_CreateLeaveType_When_PassValidParameters() { // Arrange IUnitOfWork unitOfWork = new UnitOfWork(_fixture.Context); IRepository <LeaveType> repository = new Repository <LeaveType>(_fixture.Context); var handler = new CreateLeaveTypeHandler(unitOfWork, repository, _logger, _mapper); var request = new CreateLeaveTypeCommand(companyId: 1, userId: 1, isHalfDaysActivated: true, isHideLeaveTypeName: false, typeName: "Test Leave Type", isApprovalRequired: true, defaultDaysPerYear: 0, isUnlimited: true, isReasonRequired: true, allowNegativeBalance: true, color: "FFFFFF"); // Act var tcs = new CancellationToken(); var result = await handler.Handle(request, tcs); // Assert Assert.Equal(1, result.LeaveTypeId); Assert.Equal(1, result.CreatedBy); }
public async Task Should_ValidatorReturnTrue_When_PassDaysPerYearGreaterThanZeroForIsUnlimitedFalse() { LeaveTypeCommandValidator validator = new LeaveTypeCommandValidator(); // Arrange IUnitOfWork unitOfWork = new UnitOfWork(_fixture.Context); IRepository <LeaveType> repository = new Repository <LeaveType>(_fixture.Context); var handler = new CreateLeaveTypeHandler(unitOfWork, repository, _logger, _mapper); var request = new CreateLeaveTypeCommand(companyId: 1, userId: 1, isHalfDaysActivated: true, isHideLeaveTypeName: true, typeName: "Test Name", isApprovalRequired: true, defaultDaysPerYear: 10, isUnlimited: false, isReasonRequired: true, allowNegativeBalance: true, color: "FFFFFF"); // Act var result = await validator.ValidateAsync(request); //Assert Assert.True(result.IsValid); }
public async Task Should_CreateLeaveType_When_PassDeletedLeaveTypeName() { // Arrange var entity = new LeaveType() { ColorCode = "ffffff", CompanyId = 1, CreatedAt = DateTime.Now, CreatedBy = -1, DefaultDaysPerYear = 10, IsActive = true, IsAllowNegativeBalance = true, IsApproverRequired = false, IsDefault = true, IsDeleted = true, IsHalfDaysActivated = true, IsHideLeaveTypeName = false, IsReasonRequired = true, IsUnlimited = false, LeaveTypeName = "Test Name" }; _fixture.Context.LeaveTypes.Add(entity); _fixture.Context.SaveChanges(); IUnitOfWork unitOfWork = new UnitOfWork(_fixture.Context); IRepository <LeaveType> repository = new Repository <LeaveType>(_fixture.Context); var handler = new CreateLeaveTypeHandler(unitOfWork, repository, _logger, _mapper); var request = new CreateLeaveTypeCommand(companyId: 1, userId: 1, isHalfDaysActivated: true, isHideLeaveTypeName: true, typeName: "Test Name", isApprovalRequired: true, defaultDaysPerYear: 10, isUnlimited: true, isReasonRequired: true, allowNegativeBalance: true, color: "FFFFFF"); // Act var tcs = new CancellationToken(); var result = await handler.Handle(request, tcs); // Assert Assert.Equal("Test Name", result.LeaveTypeName); Assert.Equal("FFFFFF", result.ColorCode); Assert.True(result.IsHalfDaysActivated); Assert.True(result.IsHideLeaveTypeName); Assert.True(result.IsApproverRequired); Assert.Equal(10, result.DefaultDaysPerYear); Assert.True(result.IsUnlimited); Assert.True(result.IsReasonRequired); Assert.True(result.IsAllowNegativeBalance); Assert.Equal(1, result.CreatedBy); }
public async Task <ActionResult <LeaveTypeDto> > CreateAsync([FromBody] LeaveTypeModel model) { var request = new CreateLeaveTypeCommand(_companyId, _userId, model.IsHalfDaysActivated, model.IsHideLeaveTypeName, model.TypeName, model.IsApprovalRequired, model.DefaultDaysPerYear, model.IsUnlimited, model.IsReasonRequired, model.IsAllowNegativeBalance, model.Color); return(Single(await CommandAsync(request))); }