internal static void AddWrapper(ComWrapper wrapper)
 {
     if (s_wrappers != null)
     {
         s_wrappers.Add(wrapper);
     }
 }
        public void SettlementInit_OnValidResponse_ReturnObjects()
        {
            // arrange
            var          secrets = SpiClientTestUtils.SetTestSecrets();
            const string jsonStr = @"{""message"":{""data"":{""accumulacxted_purchase_count"":""1"",""accumulated_purchase_value"":""1000"",""accumulated_settle_by_acquirer_count"":""1"",""accumulated_settle_by_acquirer_value"":""1000"",""accumulated_total_count"":""1"",""accumulated_total_value"":""1000"",""bank_date"":""14062019"",""bank_time"":""160940"",""host_response_code"":""941"",""host_response_text"":""CUTOVER COMPLETE"",""merchant_acquirer"":""EFTPOS FROM BANK SA"",""merchant_address"":""213 Miller Street"",""merchant_city"":""Sydney"",""merchant_country"":""Australia"",""merchant_name"":""Merchant4"",""merchant_postcode"":""2060"",""merchant_receipt"":""EFTPOS FROM BANK SA\r\nMerchant4\r\n213 Miller Street\r\nSydney 2060\r\n\r\nAustralia\r\n\r\n\r\n SETTLEMENT CUTOVER\r\nTSP     100612348842\r\nTIME   14JUN19 16:09\r\nTRAN   001137-001137\r\nFROM   13JUN19 20:00\r\nTO     14JUN19 16:09\r\n\r\nDebit\r\nTOT     0      $0.00\r\n\r\nMasterCard\r\nTOT     0      $0.00\r\n\r\nVisa\r\nPUR     1     $10.00\r\nTOT     1     $10.00\r\n\r\nBANKED  1     $10.00\r\n\r\nAmex\r\nTOT     0      $0.00\r\n\r\nDiners\r\nTOT     0      $0.00\r\n\r\nJCB\r\nTOT     0      $0.00\r\n\r\nUnionPay\r\nTOT     0      $0.00\r\n\r\nTOTAL\r\nPUR     1     $10.00\r\nTOT     1     $10.00\r\n\r\n (941) CUTOVER COMP\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n"",""schemes"":[{""scheme_name"":""Debit"",""settle_by_acquirer"":""Yes"",""total_count"":""0"",""total_value"":""0""},{""scheme_name"":""MasterCard"",""settle_by_acquirer"":""Yes"",""total_count"":""0"",""total_value"":""0""},{""scheme_name"":""Visa"",""settle_by_acquirer"":""Yes"",""total_count"":""1"",""total_purchase_count"":""1"",""total_purchase_value"":""1000"",""total_value"":""1000""},{""scheme_name"":""Amex"",""settle_by_acquirer"":""No"",""total_count"":""0"",""total_value"":""0""},{""scheme_name"":""Diners"",""settle_by_acquirer"":""No"",""total_count"":""0"",""total_value"":""0""},{""scheme_name"":""JCB"",""settle_by_acquirer"":""No"",""total_count"":""0"",""total_value"":""0""},{""scheme_name"":""UnionPay"",""settle_by_acquirer"":""No"",""total_count"":""0"",""total_value"":""0""}],""settlement_period_end_date"":""14Jun19"",""settlement_period_end_time"":""16:09"",""settlement_period_start_date"":""13Jun19"",""settlement_period_start_time"":""20:00"",""settlement_triggered_date"":""14Jun19"",""settlement_triggered_time"":""16:09:40"",""stan"":""000000"",""success"":true,""terminal_id"":""100612348842"",""transaction_range"":""001137-001137""},""datetime"":""2019-06-14T16:09:46.395"",""event"":""settle_response"",""id"":""settle116""}}";

            // act
            var msg        = Message.FromJson(jsonStr, secrets);
            var comWrapper = new ComWrapper();
            var response   = comWrapper.SettlementInit(msg);

            // assert
            Assert.Equal("settle_response", msg.EventName);
            Assert.True(response.Success);
            Assert.Equal("settle116", response.RequestId);
            Assert.Equal(1, response.GetSettleByAcquirerCount());
            Assert.Equal(1000, response.GetSettleByAcquirerValue());
            Assert.Equal(1, response.GetTotalCount());
            Assert.Equal(1000, response.GetTotalValue());
            Assert.Equal(DateTime.ParseExact(msg.GetDataStringValue("settlement_period_start_time") + msg.GetDataStringValue("settlement_period_start_date"), "HH:mmddMMMyy", CultureInfo.InvariantCulture), response.GetPeriodStartTime());
            Assert.Equal(DateTime.ParseExact(msg.GetDataStringValue("settlement_period_end_time") + msg.GetDataStringValue("settlement_period_end_date"), "HH:mmddMMMyy", CultureInfo.InvariantCulture), response.GetPeriodEndTime());
            Assert.Equal(DateTime.ParseExact(msg.GetDataStringValue("settlement_triggered_time") + msg.GetDataStringValue("settlement_triggered_date"), "HH:mm:ssddMMMyy", CultureInfo.InvariantCulture), response.GetTriggeredTime());
            Assert.Equal("CUTOVER COMPLETE", response.GetResponseText());
            Assert.NotNull(response.GetReceipt());
            Assert.Equal("001137-001137", response.GetTransactionRange());
            Assert.Equal("100612348842", response.GetTerminalId());
            Assert.False(response.WasMerchantReceiptPrinted());
            Assert.Equal(msg.Data["schemes"].ToArray().Select(jToken => new SchemeSettlementEntry((JObject)jToken)).ToList().Count, response.GetSchemeSettlementEntries().ToList().Count);
        }
        /// <summary>
        ///     Call this to get the running outlook application, or create a new instance
        /// </summary>
        /// <returns>IOutlookApplication</returns>
        private static IOutlookApplication GetOrCreateOutlookApplication()
        {
            var outlookApplication = ComWrapper.GetOrCreateInstance <IOutlookApplication>();

            InitializeVariables(outlookApplication);
            return(outlookApplication);
        }
        public void GetSchemeSettlementEntries_OnValidResponse_ReturnCount()
        {
            // arrange
            var          stlEnqMsg            = new SettlementEnquiryRequest(RequestIdHelper.Id("stlenq")).ToMessage();
            var          transactionFlowState = new TransactionFlowState("1", TransactionType.SettlementEnquiry, 0, stlEnqMsg, $"Waiting for EFTPOS connection to make a settlement enquiry");
            var          secrets = SpiClientTestUtils.SetTestSecrets();
            const string jsonStr = @"{""message"":{""data"":{""accumulacxted_purchase_count"":""1"",""accumulated_purchase_value"":""1000"",""accumulated_settle_by_acquirer_count"":""1"",""accumulated_settle_by_acquirer_value"":""1000"",""accumulated_total_count"":""1"",""accumulated_total_value"":""1000"",""bank_date"":""14062019"",""bank_time"":""160940"",""host_response_code"":""941"",""host_response_text"":""CUTOVER COMPLETE"",""merchant_acquirer"":""EFTPOS FROM BANK SA"",""merchant_address"":""213 Miller Street"",""merchant_city"":""Sydney"",""merchant_country"":""Australia"",""merchant_name"":""Merchant4"",""merchant_postcode"":""2060"",""merchant_receipt"":""EFTPOS FROM BANK SA\r\nMerchant4\r\n213 Miller Street\r\nSydney 2060\r\n\r\nAustralia\r\n\r\n\r\n SETTLEMENT CUTOVER\r\nTSP     100612348842\r\nTIME   14JUN19 16:09\r\nTRAN   001137-001137\r\nFROM   13JUN19 20:00\r\nTO     14JUN19 16:09\r\n\r\nDebit\r\nTOT     0      $0.00\r\n\r\nMasterCard\r\nTOT     0      $0.00\r\n\r\nVisa\r\nPUR     1     $10.00\r\nTOT     1     $10.00\r\n\r\nBANKED  1     $10.00\r\n\r\nAmex\r\nTOT     0      $0.00\r\n\r\nDiners\r\nTOT     0      $0.00\r\n\r\nJCB\r\nTOT     0      $0.00\r\n\r\nUnionPay\r\nTOT     0      $0.00\r\n\r\nTOTAL\r\nPUR     1     $10.00\r\nTOT     1     $10.00\r\n\r\n (941) CUTOVER COMP\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n"",""schemes"":[{""scheme_name"":""Debit"",""settle_by_acquirer"":""Yes"",""total_count"":""0"",""total_value"":""0""},{""scheme_name"":""MasterCard"",""settle_by_acquirer"":""Yes"",""total_count"":""0"",""total_value"":""0""},{""scheme_name"":""Visa"",""settle_by_acquirer"":""Yes"",""total_count"":""1"",""total_purchase_count"":""1"",""total_purchase_value"":""1000"",""total_value"":""1000""},{""scheme_name"":""Amex"",""settle_by_acquirer"":""No"",""total_count"":""0"",""total_value"":""0""},{""scheme_name"":""Diners"",""settle_by_acquirer"":""No"",""total_count"":""0"",""total_value"":""0""},{""scheme_name"":""JCB"",""settle_by_acquirer"":""No"",""total_count"":""0"",""total_value"":""0""},{""scheme_name"":""UnionPay"",""settle_by_acquirer"":""No"",""total_count"":""0"",""total_value"":""0""}],""settlement_period_end_date"":""14Jun19"",""settlement_period_end_time"":""16:09"",""settlement_period_start_date"":""13Jun19"",""settlement_period_start_time"":""20:00"",""settlement_triggered_date"":""14Jun19"",""settlement_triggered_time"":""16:09:40"",""stan"":""000000"",""success"":true,""terminal_id"":""100612348842"",""transaction_range"":""001137-001137""},""datetime"":""2019-06-14T16:09:46.395"",""event"":""settle_response"",""id"":""settle116""}}";

            // act
            var msg = Message.FromJson(jsonStr, secrets);

            transactionFlowState.Response = msg;
            var comWrapper     = new ComWrapper();
            var schemeArray    = comWrapper.GetSchemeSettlementEntries(transactionFlowState);
            var settleResponse = new Settlement(transactionFlowState.Response);
            var schemes        = settleResponse.GetSchemeSettlementEntries();
            var schemeList     = new List <SchemeSettlementEntry>();

            foreach (var s in schemes)
            {
                schemeList.Add(s);
            }

            // assert
            Assert.Equal(schemeArray.ToList().Count, schemeList.Count);
        }
Exemple #5
0
        /// <summary>
        ///     Call this to get the running Excel application, or create a new instance
        /// </summary>
        /// <returns>IExcelApplication</returns>
        private static IExcelApplication GetOrCreateExcelApplication()
        {
            var excelApplication = ComWrapper.GetOrCreateInstance <IExcelApplication>();

            InitializeVariables(excelApplication);
            return(excelApplication);
        }
        /// <summary>
        ///     Call this to get the running powerpoint application, or create a new instance
        /// </summary>
        /// <returns>IPowerpointApplication</returns>
        private static IPowerpointApplication GetOrCreatePowerpointApplication()
        {
            var powerpointApplication = ComWrapper.GetOrCreateInstance <IPowerpointApplication>();

            InitializeVariables(powerpointApplication);
            return(powerpointApplication);
        }
Exemple #7
0
        /// <summary>
        ///     Call this to get the running word application, or create a new instance
        /// </summary>
        /// <returns>IWordApplication</returns>
        private static IWordApplication GetOrCreateWordApplication()
        {
            var wordApplication = ComWrapper.GetOrCreateInstance <IWordApplication>();

            InitializeVariables(wordApplication);
            return(wordApplication);
        }
 /// <summary>
 ///     Export the capture to the specified page
 /// </summary>
 /// <param name="surfaceToUpload">ISurface</param>
 /// <param name="page">OneNotePage</param>
 /// <returns>bool true if everything worked</returns>
 public static bool ExportToPage(ISurface surfaceToUpload, OneNotePage page)
 {
     using (var oneNoteApplication = ComWrapper.GetOrCreateInstance <IOneNoteApplication>())
     {
         return(ExportToPage(oneNoteApplication, surfaceToUpload, page));
     }
 }
        public void AccountVerifyResponseInit_OnValidResponse_ReturnObjects()
        {
            // arrange
            var          secrets = SpiClientTestUtils.SetTestSecrets();
            const string jsonStr = @"{""message"":{""data"":{""account_type"":""CREDIT"",""auth_code"":""316810"",""bank_date"":""11062019"",""bank_settlement_date"":""11062019"",""bank_time"":""182739"",""card_entry"":""EMV_INSERT"",""currency"":""AUD"",""customer_receipt"":""EFTPOS FROM BANK SA\r\nMerchant4\r\n213 Miller Street\r\nSydney 2060\r\nAustralia\r\n\r\nTIME 11JUN19   18:27\r\nMID         22341842\r\nTSP     100612348842\r\nRRN     190611001109\r\nVisa Credit     \r\nVisa(I)           CR\r\nCARD............3952\r\nAID   A0000000031010\r\nTVR       0080048000\r\nAUTH          316810\r\n\r\nA/C VERIFIED AUD0.00\r\n\r\n   (000) APPROVED\r\n\r\n  *CUSTOMER COPY*\r\n\r\n\r\n\r\n\r\n\r\n\r\n"",""customer_receipt_printed"":false,""emv_actioncode"":""TC"",""emv_actioncode_values"":""F1F17B37A5BEF2B1"",""emv_pix"":""1010"",""emv_rid"":""A000000003"",""emv_tsi"":""F800"",""emv_tvr"":""0080048000"",""expiry_date"":""1122"",""host_response_code"":""000"",""host_response_text"":""APPROVED"",""informative_text"":""                "",""masked_pan"":""............3952"",""merchant_acquirer"":""EFTPOS FROM BANK SA"",""merchant_addr"":""213 Miller Street"",""merchant_city"":""Sydney"",""merchant_country"":""Australia"",""merchant_id"":""22341842"",""merchant_name"":""Merchant4"",""merchant_postcode"":""2060"",""merchant_receipt"":""EFTPOS FROM BANK SA\r\nMerchant4\r\n213 Miller Street\r\nSydney 2060\r\nAustralia\r\n\r\nTIME 11JUN19   18:27\r\nMID         22341842\r\nTSP     100612348842\r\nRRN     190611001109\r\nVisa Credit     \r\nVisa(I)           CR\r\nCARD............3952\r\nAID   A0000000031010\r\nTVR       0080048000\r\nAUTH          316810\r\n\r\nA/C VERIFIED AUD0.00\r\n\r\n   (000) APPROVED\r\n\r\n\r\n\r\n\r\n\r\n\r\n"",""merchant_receipt_printed"":false,""online_indicator"":""Y"",""pos_ref_id"":""actvfy-11-06-2019-18-27-39"",""rrn"":""190611001109"",""scheme_app_name"":""Visa Credit"",""scheme_name"":""Visa"",""stan"":""001109"",""success"":true,""terminal_id"":""100612348842"",""terminal_ref_id"":""12348842_11062019182754"",""transaction_type"":""A/C VERIFIED""},""datetime"":""2019-06-11T18:27:54.933"",""event"":""account_verify_response"",""id"":""prav15""}}";

            // act
            var msg        = Message.FromJson(jsonStr, secrets);
            var comWrapper = new ComWrapper();
            var response   = comWrapper.AccountVerifyResponseInit(msg);

            // assert
            Assert.Equal("account_verify_response", msg.EventName);
            Assert.Equal("actvfy-11-06-2019-18-27-39", response.PosRefId);
            Assert.True(response.Details.Success);
            Assert.Equal("prav15", response.Details.RequestId);
            Assert.Equal("Visa", response.Details.SchemeName);
            Assert.Equal("190611001109", response.Details.GetRRN());
            Assert.NotNull(response.Details.GetCustomerReceipt());
            Assert.NotNull(response.Details.GetMerchantReceipt());
            Assert.Equal("APPROVED", response.Details.GetResponseText());
            Assert.Equal("000", response.Details.GetResponseCode());
            Assert.Equal("EMV_INSERT", response.Details.GetCardEntry());
            Assert.Equal("CREDIT", response.Details.GetAccountType());
            Assert.Equal("316810", response.Details.GetAuthCode());
            Assert.Equal("11062019", response.Details.GetBankDate());
            Assert.Equal("182739", response.Details.GetBankTime());
            Assert.Equal("............3952", response.Details.GetMaskedPan());
            Assert.Equal("100612348842", response.Details.GetTerminalId());
            Assert.False(response.Details.WasCustomerReceiptPrinted());
            Assert.False(response.Details.WasMerchantReceiptPrinted());
            Assert.Equal(DateTime.ParseExact(msg.GetDataStringValue("bank_settlement_date"), "ddMMyyyy", CultureInfo.InvariantCulture).Date, response.Details.GetSettlementDate());
        }
        public void CashoutOnlyResponseInit_OnValidResponse_ReturnObjects()
        {
            // arrange
            const string jsonStr = @"{""message"": {""data"":{""account_type"":""SAVINGS"",""auth_code"":""265035"",""bank_cash_amount"":1200,""bank_date"":""17062018"",""bank_settlement_date"":""18062018"",""bank_time"":""170950"",""card_entry"":""EMV_INSERT"",""cash_amount"":1200,""currency"":""AUD"",""customer_receipt"":""EFTPOS FROM WESTPAC\\r\\nMerchant4\\r\\n213 Miller Street\\r\\nSydney 2060\\r\\nAustralia\\r\\n\\r\\nTIME 17JUN18   17:09\\r\\nMID         22341845\\r\\nTSP     100312348845\\r\\nRRN     180617000151\\r\\nDebit(I)         SAV\\r\\nCARD............2797\\r\\nAUTH          265035\\r\\n\\r\\nCASH        AUD10.00\\r\\nSURCHARGE    AUD2.00\\r\\nTOTAL       AUD12.00\\r\\n\\r\\n   (000) APPROVED\\r\\n\\r\\n  *CUSTOMER COPY*\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n"",""customer_receipt_printed"":true,""expiry_date"":""0722"",""host_response_code"":""000"",""host_response_text"":""APPROVED"",""informative_text"":""                "",""masked_pan"":""............2797"",""merchant_acquirer"":""EFTPOS FROM WESTPAC"",""merchant_addr"":""213 Miller Street"",""merchant_city"":""Sydney"",""merchant_country"":""Australia"",""merchant_id"":""22341845"",""merchant_name"":""Merchant4"",""merchant_postcode"":""2060"",""merchant_receipt"":""EFTPOS FROM WESTPAC\\r\\nMerchant4\\r\\n213 Miller Street\\r\\nSydney 2060\\r\\nAustralia\\r\\n\\r\\nTIME 17JUN18   17:09\\r\\nMID         22341845\\r\\nTSP     100312348845\\r\\nRRN     180617000151\\r\\nDebit(I)         SAV\\r\\nCARD............2797\\r\\nAUTH          265035\\r\\n\\r\\nCASH        AUD10.00\\r\\nSURCHARGE    AUD2.00\\r\\nTOTAL       AUD12.00\\r\\n\\r\\n   (000) APPROVED\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n"",""merchant_receipt_printed"":true,""online_indicator"":""Y"",""pos_ref_id"":""launder-18-06-2018-03-09-17"",""rrn"":""180617000151"",""scheme_name"":""Debit"",""stan"":""000151"",""success"":true,""surcharge_amount"":200,""terminal_id"":""100312348845"",""terminal_ref_id"":""12348845_18062018031010"",""transaction_type"":""CASH""},""datetime"":""2018-06-18T03:10:10.580"",""event"":""cash_response"",""id"":""cshout4""}}";

            // act
            var msg        = Message.FromJson(jsonStr, null);
            var comWrapper = new ComWrapper();
            var response   = comWrapper.CashoutOnlyResponseInit(msg);

            // assert
            Assert.True(response.Success);
            Assert.Equal("cshout4", response.RequestId);
            Assert.Equal("launder-18-06-2018-03-09-17", response.PosRefId);
            Assert.Equal("Debit", response.SchemeName);
            Assert.Equal("180617000151", response.GetRRN());
            Assert.Equal(1200, response.GetCashoutAmount());
            Assert.Equal(0, response.GetBankNonCashAmount());
            Assert.Equal(1200, response.GetBankCashAmount());
            Assert.Equal(200, response.GetSurchargeAmount());
            Assert.NotNull(response.GetCustomerReceipt());
            Assert.Equal("APPROVED", response.GetResponseText());
            Assert.Equal("000", response.GetResponseCode());
            Assert.Equal("12348845_18062018031010", response.GetTerminalReferenceId());
            Assert.Equal("SAVINGS", response.GetAccountType());
            Assert.Equal("17062018", response.GetBankDate());
            Assert.NotNull(response.GetMerchantReceipt());
            Assert.Equal("170950", response.GetBankTime());
            Assert.Equal("............2797", response.GetMaskedPan());
            Assert.Equal("100312348845", response.GetTerminalId());
            Assert.Equal("265035", response.GetAuthCode());
            Assert.True(response.WasCustomerReceiptPrinted());
            Assert.True(response.WasMerchantReceiptPrinted());
            Assert.Equal(response.GetResponseValue("pos_ref_id"), response.PosRefId);
        }
        public void GetLastTransactionResponseInit_OnValidResponse_ReturnObjects()
        {
            // arrange
            var          secrets = SpiClientTestUtils.SetTestSecrets();
            const string jsonStr = @"{""message"":{""data"":{""account_type"":""CREDIT"",""auth_code"":""139059"",""bank_date"":""14062019"",""bank_noncash_amount"":1000,""bank_settlement_date"":""14062019"",""bank_time"":""153747"",""card_entry"":""EMV_CTLS"",""currency"":""AUD"",""customer_receipt"":"""",""customer_receipt_printed"":false,""emv_actioncode"":""ARP"",""emv_actioncode_values"":""9BDDE227547B41F43030"",""emv_pix"":""1010"",""emv_rid"":""A000000003"",""emv_tsi"":""0000"",""emv_tvr"":""0000000000"",""expiry_date"":""1122"",""host_response_code"":""000"",""host_response_text"":""APPROVED"",""informative_text"":""                "",""masked_pan"":""............3952"",""merchant_acquirer"":""EFTPOS FROM BANK SA"",""merchant_addr"":""213 Miller Street"",""merchant_city"":""Sydney"",""merchant_country"":""Australia"",""merchant_id"":""22341842"",""merchant_name"":""Merchant4"",""merchant_postcode"":""2060"",""merchant_receipt"":""EFTPOS FROM BANK SA\r\nMerchant4\r\n213 Miller Street\r\nSydney 2060\r\nAustralia\r\n\r\nTIME 14JUN19   15:37\r\nMID         22341842\r\nTSP     100612348842\r\nRRN     190614001137\r\nVisa Credit     \r\nVisa(C)           CR\r\nCARD............3952\r\nAID   A0000000031010\r\nTVR       0000000000\r\nAUTH          139059\r\n\r\nPURCHASE    AUD10.00\r\n\r\n   (000) APPROVED\r\n\r\n*DUPLICATE  RECEIPT*\r\n\r\n\r\n\r\n\r\n\r\n\r\n"",""merchant_receipt_printed"":false,""online_indicator"":""Y"",""pos_ref_id"":""prchs-14-06-2019-15-37-49"",""purchase_amount"":1000,""rrn"":""190614001137"",""scheme_app_name"":""Visa Credit"",""scheme_name"":""Visa"",""stan"":""001137"",""success"":true,""terminal_id"":""100612348842"",""terminal_ref_id"":""12348842_14062019153831"",""transaction_type"":""PURCHASE""},""datetime"":""2019-06-14T15:38:31.620"",""event"":""last_transaction"",""id"":""glt10""}}";

            // act
            var msg        = Message.FromJson(jsonStr, secrets);
            var comWrapper = new ComWrapper();
            var response   = comWrapper.GetLastTransactionResponseInit(msg);

            // assert
            Assert.Equal("last_transaction", msg.EventName);
            Assert.True(response.WasRetrievedSuccessfully());
            Assert.Equal(Message.SuccessState.Success, response.GetSuccessState());
            Assert.True(response.WasSuccessfulTx());
            Assert.Equal("PURCHASE", response.GetTxType());
            Assert.Equal("prchs-14-06-2019-15-37-49", response.GetPosRefId());
            Assert.Equal(1000, response.GetBankNonCashAmount());
            Assert.Equal("Visa", response.GetSchemeName());
            Assert.Equal("Visa", response.GetSchemeApp());
            Assert.Equal(0, response.GetAmount());
            Assert.Equal(0, response.GetTransactionAmount());
            Assert.Equal("14062019153747", response.GetBankDateTimeString());
            Assert.Equal("190614001137", response.GetRRN());
            Assert.Equal("APPROVED", response.GetResponseText());
            Assert.Equal("000", response.GetResponseCode());
        }
Exemple #12
0
 public void DiscardOutBuffer()
 {
     if (!this.fd.HasValue)
     {
         throw new Exception();
     }
     ComWrapper.com_tcoflush(this.fd.Value);
 }
Exemple #13
0
        /// <summary>
        /// A factory method for creating managed E3 API objects.
        /// </summary>
        /// <typeparam name="T">.NET public interface of E3 API object</typeparam>
        /// <returns>Managed E3 API object</returns>
        internal static T CreateObject <T>(this ComWrapper entity) where T : IDisposable
        {
            entity.GuardDisposed();
            var typeName = typeof(T).Name.ReplaceSuffix("I", "E3");
            var t        = Type.GetType(string.Format("E3Series.Wrapper.Entities.{0}", typeName), true);

            return((T)Activator.CreateInstance(t, entity));
        }
Exemple #14
0
        /// <summary>
        /// Factory method to create and return the correct OutlookItem object (MailItem) for the given COM object.
        /// </summary>
        /// <param name="comObj"></param>
        /// <returns></returns>
        internal static OutlookItem ResolveType(object comObj)
        {
            if (ComWrapper.SupportsInterface(comObj, ComWrapper.GetMustSupport(typeof(MailItem))))
            {
                return(new MailItem(comObj));
            }

            throw new NotImplementedException("Unknown object when attempting to resolve Outlook item type.");
        }
        public void NewBillId_ValidRequest_ReturnObject()
        {
            // act
            var comWrapper = new ComWrapper();
            var newBillId  = comWrapper.NewBillId();

            // assert
            Assert.Equal((DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1))).TotalMilliseconds.ToString(), newBillId);
        }
        public void GetPosVersion_OnValidResponse_ReturnObject()
        {
            // act
            var comWrapper    = new ComWrapper();
            var comPosVersion = comWrapper.GetPosVersion();

            // assert
            Assert.Equal("0", comPosVersion);
        }
Exemple #17
0
        internal List <string> Export()
        {
            var contents = new List <string>();

            using (var ppt = new ComWrapper <PowerPoint.Presentation>(
                       ppts.Open(file,
                                 ReadOnly: Microsoft.Office.Core.MsoTriState.msoTrue,
                                 WithWindow: Microsoft.Office.Core.MsoTriState.msoFalse)
                       ))
            {
                var tempFiles = new string[2];
                var success   = false;
                try
                {
                    tempFiles[0] = Path.GetTempFileName();
                    tempFiles[1] = Path.GetTempFileName();

                    //Text in PPT
                    //Save as rich text file.
                    ppt.ComObject.SaveAs(tempFiles[0], FileFormat: PowerPoint.PpSaveAsFileType.ppSaveAsRTF);
                    //Read and save as a text file.
                    string richText = File.ReadAllText(tempFiles[0], Encoding.Default);
                    //Cheep trick to convert text from rtf.
                    RichTextBox richTextBox = new RichTextBox();
                    richTextBox.Rtf = richText;
                    File.WriteAllText(tempFiles[0], richTextBox.Text, Encoding.Default);

                    //Text in shapes & comments
                    var slideContents = new List <string>();
                    foreach (PowerPoint.Slide slide in ppt.ComObject.Slides)
                    {
                        foreach (PowerPoint.Shape shape in slide.Shapes)
                        {
                            ExtractShapeContents(slideContents, shape);
                        }
                        foreach (PowerPoint.Comment comment in slide.Comments)
                        {
                            slideContents.Add(comment.Author + ":" + comment.Text);
                        }
                        slideContents.Add(slide.NotesPage.Shapes.Placeholders[2].TextFrame.TextRange.Text);//placefolders[1] is slide itself.
                    }
                    File.WriteAllLines(tempFiles[1], slideContents, Encoding.Default);
                    success = true;
                }
                finally
                {
                    ppt.ComObject.Close();
                    //merge contents after closing ppt.
                    if (success)
                    {
                        contents = FileUtils.MergeTextContents(tempFiles);
                    }
                    FileUtils.DeleteFiles(tempFiles);
                }
                return(contents);
            }
        }
        private void ExportPowerPoint(string file, ComWrapper <PowerPoint.Presentations> ppts)
        {
            var           exporter = new PowerPointTextExporter(file, ppts.ComObject);
            List <string> contents = exporter.Export();

            if (contents.Count != 0)
            {
                File.WriteAllLines(GetSavePath(file), contents, Encoding.Default);
            }
        }
Exemple #19
0
 public void Close()
 {
     if (!this.fd.HasValue)
     {
         throw new Exception();
     }
     this.cts.Cancel();
     ComWrapper.com_close(this.fd.Value);
     Marshal.FreeHGlobal(this.readingBuffer);
 }
        private void ExportExcel(string file, ComWrapper <Excel.Workbooks> books)
        {
            var           exporter = new ExcelTextExpoter(file, books.ComObject);
            List <string> contents = exporter.Export();

            if (contents.Count != 0)
            {
                File.WriteAllLines(GetSavePath(file), contents, Encoding.Default);
            }
        }
        public void GetSpiVersion_OnValidResponse_ReturnObject()
        {
            // act
            var spiVersion    = Spi.GetVersion();
            var comWrapper    = new ComWrapper();
            var comSpiVersion = comWrapper.GetSpiVersion();

            // assert
            Assert.Equal(spiVersion, comSpiVersion);
        }
        private void ExportWord(string file, ComWrapper <Word.Documents> docs)
        {
            var exporter = new WordTextExporter(file, docs.ComObject);
            var contents = exporter.Export();

            if (contents.Count != 0)
            {
                File.WriteAllLines(GetSavePath(file), contents, Encoding.Default);
            }
        }
Exemple #23
0
        public void Write(byte[] buf, int offset, int len)
        {
            if (!this.fd.HasValue)
            {
                throw new Exception();
            }
            IntPtr ptr = Marshal.AllocHGlobal(len);

            Marshal.Copy(buf, offset, ptr, len);
            ComWrapper.com_write(this.fd.Value, ptr, len);
            Marshal.FreeHGlobal(ptr);
        }
Exemple #24
0
        /// <summary>
        /// Factory method to create and return the correct Sheet object (Worksheet or Chart) for the given COM object.
        /// </summary>
        /// <param name="comObj"></param>
        /// <returns></returns>
        internal static Sheet ResolveType(object comObj)
        {
            if (ComWrapper.SupportsInterface(comObj, ComWrapper.GetMustSupport(typeof(Worksheet))))
            {
                return(new Worksheet(comObj));
            }
            else if (ComWrapper.SupportsInterface(comObj, ComWrapper.GetMustSupport(typeof(Chart))))
            {
                return(new Chart(comObj));
            }

            throw new NotImplementedException("Unknown object when attempting to resolve sheet type.");
        }
        public void SecretsInit_OnValidRequest_IsSet()
        {
            // arrange
            const string encKey  = "81CF9E6A14CDAF244A30B298D4CECB505C730CE352C6AF6E1DE61B3232E24D3F";
            const string hmacKey = "D35060723C9EECDB8AEA019581381CB08F64469FC61A5A04FE553EBDB5CD55B9";

            // act
            var comWrapper = new ComWrapper();
            var secrets    = comWrapper.SecretsInit(encKey, hmacKey);

            // assert
            Assert.Equal(encKey, secrets.EncKey);
            Assert.Equal(hmacKey, secrets.HmacKey);
        }
Exemple #26
0
 /// <summary>
 /// Attempts to attach to an already running Outlook process.
 /// </summary>
 /// <param name="processToAttach">The Process object to which to attach.</param>
 /// <returns>An Application wrapper.</returns>
 public static Application FromProcess(Process processToAttach)
 {
     using (Application application = ComWrapper.FromProcess <Application>(processToAttach, "OUTLOOK"))
     {
         if (application != null)
         {
             return(application);
         }
         else
         {
             return(null);
         }
     }
 }
Exemple #27
0
 /// <summary>
 /// Attempts to attach to an already running Word process.
 /// </summary>
 /// <param name="processToAttach">The Process object to which to attach.</param>
 /// <returns>An Application wrapper.</returns>
 public static Application FromProcess(Process processToAttach)
 {
     using (Window window = ComWrapper.FromProcess <Window>(processToAttach, "_WwG"))
     {
         if (window != null)
         {
             return(window.GetNewApplication());
         }
         else
         {
             return(null);
         }
     }
 }
        public void TerminalBatteryInit_OnValidResponse_ReturnObjects()
        {
            // arrange
            var          secrets = SpiClientTestUtils.SetTestSecrets();
            const string jsonStr = @"{""message"":{""data"":{""battery_level"":""40""},""datetime"":""2019-06-18T13:02:41.777"",""event"":""battery_level_changed"",""id"":""C1.3""}}";

            // act
            var msg        = Message.FromJson(jsonStr, secrets);
            var comWrapper = new ComWrapper();
            var response   = comWrapper.TerminalBatteryInit(msg);

            // assert
            Assert.Equal("battery_level_changed", msg.EventName);
            Assert.Equal("40", response.BatteryLevel);
        }
Exemple #29
0
        public void Open()
        {
            // open serial port
            int fd = ComWrapper.com_open(this.portName);

            if (fd == -1)
            {
                throw new Exception($"failed to open port ({this.portName})");
            }

            ComWrapper.com_set_interface_attribs(fd, this.baudRate, this.dataBits, (int)this.parity, (int)this.stopBits);

            // start reading
            //Task.Run((Action)StartReading, CancellationToken);

            this.fd = fd;
        }
        internal List <string> Export()
        {
            var contents = new List <string>();

            using (var doc = new ComWrapper <Word.Document>(
                       docs.Open(file,
                                 ReadOnly: true,
                                 AddToRecentFiles: false,
                                 Visible: false)
                       ))
            {
                var  tempFiles = new string[2];
                bool success   = false;
                try
                {
                    tempFiles[0] = Path.GetTempFileName();
                    tempFiles[1] = Path.GetTempFileName();

                    //Text in word.
                    doc.ComObject.SaveAs2(tempFiles[0], FileFormat: Word.WdSaveFormat.wdFormatText);
                    //Text in shapes.
                    List <string> otherContents = new List <string>();
                    foreach (Word.Shape shape in doc.ComObject.Shapes)
                    {
                        ExtractShapeContents(otherContents, shape);
                    }
                    foreach (Word.Comment comment in doc.ComObject.Comments)
                    {
                        otherContents.Add(comment.Author + ":" + comment.Range.Text);
                    }
                    File.WriteAllLines(tempFiles[1], otherContents, Encoding.Default);
                    success = true;
                }
                finally
                {
                    doc.ComObject.Close(false);
                    //merge contents after closing doc.
                    if (success)
                    {
                        contents = FileUtils.MergeTextContents(tempFiles);
                    }
                    FileUtils.DeleteFiles(tempFiles);
                }
                return(contents);
            }
        }
 internal static void AddWrapper(ComWrapper wrapper)
 {
     if (s_wrappers != null)
         s_wrappers.Add(wrapper);
 }