Beispiel #1
0
        public async Task GivenValidRequest_WhenAgencyIsInQuery_FiltersByAgency()
        {
            // Arrange
            var searchRequest = new EmployeeSalarySearchRequestDto(agency: nameof(EmployeeAgency.Redding));
            var query         = new GetEmployeeSalariesQuery(searchRequest, TestUri, default);
            var handler       = new GetEmployeeSalariesQueryHandler(Context);

            // Act
            var result = await handler.Handle(query, CancellationToken.None);

            // Assert
            result.ShouldNotBeNull();
            result.Results.ShouldNotBeNull();
            result.Results.ShouldNotBeEmpty();
            result.ShouldBeOfType <OpenReddingSearchResultAggregate <EmployeeSalarySearchResultDto> >();
            result.Count.ShouldBe(2);
            result.Results.ShouldBeOfType <List <EmployeeSalarySearchResultDto> >();
            result.Results.ShouldContain(e => e.Name == "John Smith");
            result.Results.FirstOrDefault(e => e.Name == "John Smith")?.JobTitle.ShouldBe("Software Engineer");
            result.Results.FirstOrDefault(e => e.Name == "John Smith")?.Agency.ShouldBe(nameof(EmployeeAgency.Redding));
            result.Results.FirstOrDefault(e => e.Name == "John Smith")?.Status.ShouldBe(EmployeeStatus.FullTime.ToFriendlyString());
            result.Results.ShouldContain(e => e.Name == "Mary Smith");
            result.Results.FirstOrDefault(e => e.Name == "Mary Smith")?.JobTitle.ShouldBe("Software Engineering Manager");
            result.Results.FirstOrDefault(e => e.Name == "Mary Smith")?.Agency.ShouldBe(nameof(EmployeeAgency.Redding));
            result.Results.FirstOrDefault(e => e.Name == "Mary Smith")?.Status.ShouldBe(EmployeeStatus.FullTime.ToFriendlyString());
        }
Beispiel #2
0
        public async Task GivenValidRequest_WhenSearchQueryDoesNotFindMatch_ReturnsEmptyResultList()
        {
            // Arrange
            var searchRequest = new EmployeeSalarySearchRequestDto(name: "This Employee Doesn't Exist!");
            var query         = new GetEmployeeSalariesQuery(searchRequest, TestUri, default);
            var handler       = new GetEmployeeSalariesQueryHandler(Context);

            // Act
            var result = await handler.Handle(query, CancellationToken.None);

            // Assert
            result.ShouldNotBeNull();
            result.ShouldBeOfType <OpenReddingSearchResultAggregate <EmployeeSalarySearchResultDto> >();
            result.Results.ShouldBeEmpty();
        }
Beispiel #3
0
        public async Task GivenValidRequest_WhenSearchQueryOrdersByNameDescending_ReturnsOrderedDescendingResultList()
        {
            // Arrange
            var searchRequest = new EmployeeSalarySearchRequestDto(name: "Joe", sortField: nameof(SalarySortField.Name), sortBy: nameof(SalarySortByOption.Descending));
            var query         = new GetEmployeeSalariesQuery(searchRequest, TestUri, default);
            var handler       = new GetEmployeeSalariesQueryHandler(Context);

            // Act
            var result = await handler.Handle(query, CancellationToken.None);

            // Assert
            result.ShouldNotBeNull();
            result.ShouldBeOfType <OpenReddingSearchResultAggregate <EmployeeSalarySearchResultDto> >();
            result.Results.ShouldBeOfType <List <EmployeeSalarySearchResultDto> >();
            result.Results.ShouldNotBeEmpty();
            result.Count.ShouldBe(2);
            result.Results.First()?.Name.ShouldBe("Joe Schmoe");
            result.Results.ShouldContain(e => e.Name == "Joey Mckenzie");
        }
Beispiel #4
0
        public async Task GivenValidRequest_WhenSearchQueryOrdersByTotalPayDecending_ReturnsOrderedDescendingResultList()
        {
            // Arrange
            var searchRequest = new EmployeeSalarySearchRequestDto(jobTitle: "Software", sortField: nameof(SalarySortField.TotalWithBenefitsSalary), sortBy: nameof(SalarySortByOption.Descending));
            var query         = new GetEmployeeSalariesQuery(searchRequest, TestUri, default);
            var handler       = new GetEmployeeSalariesQueryHandler(Context);

            // Act
            var result = await handler.Handle(query, CancellationToken.None);

            // Assert
            result.ShouldNotBeNull();
            result.ShouldBeOfType <OpenReddingSearchResultAggregate <EmployeeSalarySearchResultDto> >();
            result.Results.ShouldBeOfType <List <EmployeeSalarySearchResultDto> >();
            result.Results.ShouldNotBeEmpty();
            result.Count.ShouldBe(3);
            result.Results.ToList()[2].Name.ShouldBe("John Smith");
            result.Results.ToList()[1].Name.ShouldBe("Joey Mckenzie");
            result.Results.ToList()[0].Name.ShouldBe("Mary Smith");
        }
Beispiel #5
0
        public async Task GivenValidRequest_WhenStatusIsInQuery_FiltersByStatus()
        {
            // Arrange
            var searchRequest = new EmployeeSalarySearchRequestDto(status: nameof(EmployeeStatus.PartTime));
            var query         = new GetEmployeeSalariesQuery(searchRequest, TestUri, default);
            var handler       = new GetEmployeeSalariesQueryHandler(Context);

            // Act
            var result = await handler.Handle(query, CancellationToken.None);

            // Assert
            result.ShouldNotBeNull();
            result.ShouldBeOfType <OpenReddingSearchResultAggregate <EmployeeSalarySearchResultDto> >();
            result.Count.ShouldBe(2);
            result.Results.ShouldBeOfType <List <EmployeeSalarySearchResultDto> >();
            result.Results.ShouldContain(e => e.Name == "Joe Schmoe");
            result.Results.FirstOrDefault()?.JobTitle.ShouldBe("Accountant");
            result.Results.FirstOrDefault()?.Agency.ShouldBe(EmployeeAgency.ShastaCounty.ToFriendlyString());
            result.Results.FirstOrDefault()?.Status.ShouldBe(EmployeeStatus.PartTime.ToFriendlyString());
        }