public async Task TestSuccess()
        {
            // Arrange
            Guid     id       = new Guid("b7c2acaa-ad72-47b3-b858-26357cf14fbb");
            string   name     = "Unit Test";
            Customer customer = new Customer()
            {
                Id = id, Name = name
            };
            Mock <IDataRepository <Customer, Guid> > mockRepository = new Mock <IDataRepository <Customer, Guid> >();

            mockRepository.Setup(m => m.FindAsync(id, default)).ReturnsAsync(customer);
            GetCustomerRequest request = new GetCustomerRequest()
            {
                Id = id
            };
            GetCustomerCommand sut = new GetCustomerCommand(MockHelpers.GetLogger <GetCustomerCommand>(), mockRepository.Object);

            // Act
            GetCustomerResponse result = await sut.Handle(request, default);

            // Assert
            Assert.IsNotNull(result);
            Assert.IsNotNull(result.Customer);
            Assert.AreEqual(name, result.Customer.Name);
            mockRepository.VerifyAll();
            mockRepository.Verify(m => m.FindAsync(id, default), Times.Once);
        }
        public async Task TestNotFound()
        {
            // Arrange
            Mock <IDataRepository <Customer, Guid> > mockRepository = new Mock <IDataRepository <Customer, Guid> >();
            Guid id = new Guid("b7c2acaa-ad72-47b3-b858-26357cf14fbb");

            mockRepository.Setup(m => m.FindAsync(id, default)).Returns(new ValueTask <Customer>((Customer)null));
            GetCustomerRequest request = new GetCustomerRequest()
            {
                Id = id
            };
            GetCustomerCommand sut = new GetCustomerCommand(MockHelpers.GetLogger <GetCustomerCommand>(), mockRepository.Object);

            // Act
            await Assert.ThrowsExceptionAsync <NotFoundException>(async() => await sut.Handle(request, default));

            // Assert
            mockRepository.VerifyAll();
            mockRepository.Verify(m => m.FindAsync(id, default), Times.Once);
        }