public void Given_UserDetail_When_InvalidUserCredentialUsed_Then_Throw_Exception()
 {
     IAuthenticationService authenticationService = new FakeAuthenticationService(false);
     IBalanceCheckService   balanceCheckService   = new FakeBalanceCheckService(false);
     //WithdrawalService withdrawalService = new WithdrawalService(authenticationService, new BalanceCheckerService());//Without IOC unity container
     WithdrawalService withdrawalService = new WithdrawalService(authenticationService, balanceCheckService);
     bool isEligible = withdrawalService.IsEligibleToWithDrawal("", "pwd", 123, 0);
 }
        public void Given_Any_Amount_When_IsBalanceAvailable_Is_Queried_Then_Return_True()
        {
            var balanceCheckService = Substitute.For <IBalanceCheckService>();

            balanceCheckService.IsBalanceAvailable(123, 500).Returns(true);
            //WithdrawalService withdrawalService = new WithdrawalService(new FakeAuthenticationService(true), new BalanceCheckerService()); //Without IOC unity container
            WithdrawalService withdrawalService = new WithdrawalService(new FakeAuthenticationService(true), new FakeBalanceCheckService(true));
            bool isBalanceAvailable             = withdrawalService.IsEligibleToWithDrawal("Dhilip", "pwd", 123, 500);

            Assert.IsTrue(isBalanceAvailable);
        }