public async Task GivenValidRequest_WhenEmployeeSalaryRecordDoesNotExist_ThrowsNotFoundOpenReddingException()
        {
            // Arrange
            var query   = new RetrieveEmployeeSalaryQuery(44, TestUri);
            var handler = new RetrieveEmployeeSalaryQueryHandler(Context);

            // Act
            var result = await Should.ThrowAsync <OpenReddingApiException>(async() => await handler.Handle(query, CancellationToken.None));

            // Assert
            result.ShouldNotBeNull();
            result.ShouldBeOfType <OpenReddingApiException>();
            result.StatusCode.ShouldBe(HttpStatusCode.NotFound);
        }
        public async Task GivenValidRequest_WhenEmployeeSalaryRecordExists_ReturnsDetailViewModel()
        {
            // Arrange
            var query   = new RetrieveEmployeeSalaryQuery(4, TestUri);
            var handler = new RetrieveEmployeeSalaryQueryHandler(Context);

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

            // Assert
            result.ShouldNotBeNull();
            result.ShouldBeOfType <EmployeeSalaryDetailViewModel>();
            result.Employee.ShouldNotBeNull();
            result.Employee.ShouldBeOfType <EmployeeSalaryDetailDto>();
            result.Employee !.Id.ShouldBe(4);
            result.Employee.JobTitle.ShouldNotBeNull();
            result.Employee.JobTitle.ShouldBe("Senior Software Engineer");
            result.Employee.Name.ShouldNotBeNull();
            result.Employee.Name.ShouldBe("Joey Mckenzie");
        }