public async Task Return_Successful_DetailsResponse_By_MerchantId()
        {
            // Arrange
            var httpContext = new DefaultHttpContext();

            var controller = new PaymentController(NullLogger <PaymentController> .Instance, _paymentServiceMock.Object)
            {
                ControllerContext = new ControllerContext
                {
                    HttpContext = httpContext
                }
            };

            var detailsResponse = _fixture.Build <DetailsResponse>()
                                  .With(x => x.Success, true)
                                  .Create();

            _paymentServiceMock.Setup(x => x.GetDetailsAsync("merchantId1", null))
            .ReturnsAsync(detailsResponse);

            // Act
            var result = await controller.GetDetailsAsync("merchantId1", null) as OkObjectResult;

            var response = result.Value as DetailsResponse;

            // Assert
            Assert.IsNotNull(result);
            Assert.IsNotNull(response);
            Assert.AreEqual((int)HttpStatusCode.OK, result.StatusCode);
            Assert.IsTrue(response.Success);
            Assert.AreEqual(detailsResponse.MaskedCardNo, response.MaskedCardNo);
        }
        public async Task Return_NotFound_When_Null()
        {
            // Arrange
            var httpContext = new DefaultHttpContext();

            var controller = new PaymentController(NullLogger <PaymentController> .Instance, _paymentServiceMock.Object)
            {
                ControllerContext = new ControllerContext
                {
                    HttpContext = httpContext
                }
            };

            // Act
            var result = await controller.GetDetailsAsync(null, "paymentId1") as NotFoundObjectResult;

            var response = result.Value as DetailsResponse;

            // Assert
            Assert.IsNotNull(result);
            Assert.IsNotNull(response);
            Assert.AreEqual((int)HttpStatusCode.NotFound, result.StatusCode);
            Assert.IsFalse(response.Success);
        }