예제 #1
0
    // return object of specified Transaction derived class
    private Transaction CreateTransaction(int type)
    {
        Transaction temp = null; // null Transaction reference

        // determine which type of Transaction to create
        switch ((MenuOption)type)
        {
        // create new BalanceInquiry transaction
        case MenuOption.BALANCE_INQUIRY:
            temp = new BalanceInquiry(currentAccountNumber,
                                      screen, bankDatabase);
            break;

        case MenuOption.WITHDRAWAL:  // create new Withdrawal transaction
            temp = new Withdrawal(currentAccountNumber, screen,
                                  bankDatabase, keypad, cashDispenser);
            break;

        case MenuOption.DEPOSIT:  // create new Deposit transaction
            temp = new Deposit(currentAccountNumber, screen,
                               bankDatabase, keypad, depositSlot);
            break;
        }

        return(temp);
    }
예제 #2
0
        public Transaction CreateTransaction(MenuOption type,
                                             Keypad keypad, CashDispenser cashDispenser, DepositSlot depositSlot)
        {
            Transaction temp = null;

            switch (type)
            {
            case MenuOption.BalanceInquiry:
                temp = new BalanceInquiry(BankDatabase);
                break;

            case MenuOption.Withdrawal:
                temp = new Withdrawal(BankDatabase, keypad, cashDispenser);
                break;

            case MenuOption.Deposit:
                temp = new Deposit(BankDatabase, keypad, depositSlot);
                break;
            }

            return(temp);
        }
예제 #3
0
파일: ATM.cs 프로젝트: Kazempour/src
    // return object of specified Transaction derived class
    private Transaction CreateTransaction( int type )
    {
        Transaction temp = null; // null Transaction reference

          // determine which type of Transaction to create
          switch ( ( MenuOption ) type )
          {
         // create new BalanceInquiry transaction
         case MenuOption.BALANCE_INQUIRY:
            temp = new BalanceInquiry( currentAccountNumber,
               screen, bankDatabase);
            break;
         case MenuOption.WITHDRAWAL: // create new Withdrawal transaction
            temp = new Withdrawal( currentAccountNumber, screen,
               bankDatabase, keypad, cashDispenser);
            break;
         case MenuOption.DEPOSIT: // create new Deposit transaction
            temp = new Deposit( currentAccountNumber, screen,
               bankDatabase, keypad, depositSlot);
            break;
          } // end switch

          return temp;
    }
        public BalanceInquiryResponse BalanceInquiry(BalanceInquiry balanceInquiry)
        {
            LitleOnlineRequest request = CreateLitleOnlineRequest();
            request.BalanceInquiry = balanceInquiry;

            LitleOnlineResponse response = SendToLitle(request);
            return response.BalanceInquiryResponse;
        }
        public void testBalanceInquiry()
        {
            BalanceInquiry balanceInquiry = new BalanceInquiry();
            balanceInquiry.OrderId = "2";
            balanceInquiry.OrderSource = OrderSourceType.Ecommerce;
            balanceInquiry.Card = new CardType();

            var mock = new Mock<Communications>();

            mock.Setup(Communications => Communications.HttpPost(It.IsRegex(".*?<litleOnlineRequest.*?<balanceInquiry.*?<orderId>2</orderId>.*?</balanceInquiry>.*?", RegexOptions.Singleline), It.IsAny<Dictionary<String, String>>()))
                .Returns("<litleOnlineResponse version='8.21' response='0' message='Valid Format' xmlns='http://www.litle.com/schema'><balanceInquiryResponse><litleTxnId>123</litleTxnId></balanceInquiryResponse></litleOnlineResponse>");

            Communications mockedCommunication = mock.Object;
            litle.SetCommunication(mockedCommunication);
            BalanceInquiryResponse balanceInquiryResponse = litle.BalanceInquiry(balanceInquiry);
            Assert.AreEqual(123, balanceInquiryResponse.LitleTxnId);
        }
        public void testBalanceInquiry()
        {
            BalanceInquiry balanceInquiry = new BalanceInquiry();
            balanceInquiry.OrderId = "theOrderId";
            balanceInquiry.OrderSource = OrderSourceType.Ecommerce;
            balanceInquiry.Card = new CardType();

            var mockLitleResponse = new Mock<LitleResponse>();
            var mockLitleXmlSerializer = new Mock<LitleXmlSerializer>();

            mockXmlReader.SetupSequence(XmlReader => XmlReader.ReadOuterXml())
                .Returns("<balanceInquiryResponse xmlns=\"http://www.litle.com/schema\"><litleTxnId>123</litleTxnId></balanceInquiryResponse>")
                .Returns("<balanceInquiryResponse xmlns=\"http://www.litle.com/schema\"><litleTxnId>124</litleTxnId></balanceInquiryResponse>");

            BatchResponse mockLitleBatchResponse = new BatchResponse();
            mockLitleBatchResponse.SetBalanceInquiryResponseReader(mockXmlReader.Object);

            mockLitleResponse.Setup(litleResponse => litleResponse.NextBatchResponse()).Returns(mockLitleBatchResponse);
            LitleResponse mockedLitleResponse = mockLitleResponse.Object;

            mockLitleXmlSerializer.Setup(litleXmlSerializer => litleXmlSerializer.DeserializeObjectFromFile(It.IsAny<String>())).Returns(mockedLitleResponse);

            Communications mockedCommunication = mockCommunications.Object;
            litle.SetCommunication(mockedCommunication);

            LitleXmlSerializer mockedLitleXmlSerializer = mockLitleXmlSerializer.Object;
            litle.SetLitleXmlSerializer(mockedLitleXmlSerializer);

            LitleFile mockedLitleFile = mockLitleFile.Object;
            litle.SetLitleFile(mockedLitleFile);

            litle.SetLitleTime(mockLitleTime.Object);

            BatchRequest litleBatchRequest = new BatchRequest();
            litleBatchRequest.SetLitleFile(mockedLitleFile);
            litleBatchRequest.SetLitleTime(mockLitleTime.Object);
            litleBatchRequest.AddBalanceInquiry(balanceInquiry);
            litleBatchRequest.AddBalanceInquiry(balanceInquiry);
            litle.AddBatch(litleBatchRequest);

            string batchFileName = litle.SendToLitle();
            LitleResponse actualLitleResponse = litle.ReceiveFromLitle(batchFileName);
            BatchResponse actualLitleBatchResponse = actualLitleResponse.NextBatchResponse();

            Assert.AreSame(mockLitleBatchResponse, actualLitleBatchResponse);
            Assert.AreEqual(123, actualLitleBatchResponse.NextBalanceInquiryResponse().LitleTxnId);
            Assert.AreEqual(124, actualLitleBatchResponse.NextBalanceInquiryResponse().LitleTxnId);
            Assert.IsNull(actualLitleBatchResponse.NextBalanceInquiryResponse());

            mockCommunications.Verify(Communications => Communications.FtpDropOff(It.IsAny<String>(), mockFileName, It.IsAny<Dictionary<String, String>>()));
            mockCommunications.Verify(Communications => Communications.FtpPickUp(It.IsAny<String>(), It.IsAny<Dictionary<String, String>>(), mockFileName));
        }
        public void testBalanceInquiry_OnlyRequired()
        {
            var balanceInquiry = new BalanceInquiry
            {
                OrderId = "12345",
                OrderSource = OrderSourceType.Ecommerce,
                Card = new CardType(),
                ID = "theId",
                ReportGroup = "theReportGroup"
            };

            string actual = balanceInquiry.Serialize();
            const string expected = @"
            <balanceInquiry id=""theId"" reportGroup=""theReportGroup"">
            <orderId>12345</orderId>
            <orderSource>ecommerce</orderSource>
            <card>
            <type>MC</type>
            </card>
            </balanceInquiry>";
            Assert.AreEqual(expected, actual);
        }
        public void testBalanceInquiry()
        {
            BalanceInquiry balanceInquiry = new BalanceInquiry();
            balanceInquiry.OrderSource = OrderSourceType.Ecommerce;
            balanceInquiry.Card = new CardType();

            batchRequest.AddBalanceInquiry(balanceInquiry);

            Assert.AreEqual(1, batchRequest.GetNumBalanceInquiries());

            mockLitleFile.Verify(litleFile => litleFile.CreateRandomFile(It.IsAny<String>(), It.IsAny<String>(), It.IsAny<String>(), mockLitleTime.Object));
            mockLitleFile.Verify(litleFile => litleFile.AppendLineToFile(mockFilePath, balanceInquiry.Serialize()));
        }
 public void AddBalanceInquiry(BalanceInquiry balanceInquiry)
 {
     if (_numAccountUpdates == 0)
     {
         _numBalanceInquiries++;
         _tempBatchFilePath = SaveElement(_litleFile, _litleTime, _tempBatchFilePath, balanceInquiry);
     }
     else
     {
         throw new LitleOnlineException(AccountUpdateErrorMessage);
     }
 }