public async Task GetClient_ShouldReturnClient_WhenClientFound()
        {
            // Arrange
            const int expectedClientId = 2;

            using (var context = new AppDbContext(_dbContextOptions))
            {
                context.Clients.Add(new Client {
                    ClientId = 1
                });
                context.Clients.Add(new Client {
                    ClientId = expectedClientId
                });
                await context.SaveChangesAsync();
            }

            // Act
            using (var context = new AppDbContext(_dbContextOptions))
            {
                var service = new ClientsDataService(context);
                var result  = await service.GetClient(expectedClientId);

                // Assert
                result.ClientId.Should().Be(expectedClientId);
            }
        }
        public async Task GetClient_ShouldIncludeCategory_WhenClientFound()
        {
            // Arrange
            using (var context = new AppDbContext(_dbContextOptions))
            {
                context.Clients.Add(new Client {
                    ClientId = 1, Category = new Category {
                        Name = "a"
                    }
                });
                context.Clients.Add(new Client {
                    ClientId = 2, Category = new Category {
                        Name = "b"
                    }
                });
                await context.SaveChangesAsync();
            }

            // Act
            using (var context = new AppDbContext(_dbContextOptions))
            {
                var service = new ClientsDataService(context);
                var result  = await service.GetClient(2);

                // Assert
                result.Category.Name.Should().Be("b");
            }
        }
        public void GetClient_ShouldThrowClientNotFoundException_WhenClientNotFound()
        {
            // Arrange
            // Act
            using (var context = new AppDbContext(_dbContextOptions))
            {
                var         service = new ClientsDataService(context);
                Func <Task> action  = async() => await service.GetClient(0);

                // Assert
                action.Should().Throw <ClientNotFoundException>();
            }
        }