public void valid_transaction_element()
        {
            const string expected = @"
                <Transaction>
                    <Type>5</Type>
                    <CustFriendlyDesc>Updated by service</CustFriendlyDesc>
                    <ProgramCode>EMPDISC</ProgramCode>
                    <AccountPOSRef>2200005</AccountPOSRef>
                    <TransDateTime>2019-10-07 13:38:20.1</TransDateTime>
                    <BusinessDate>2019-10-07</BusinessDate>
                    <CardPresent>0</CardPresent>
                    <LocalCurrencyISOCode>DKK</LocalCurrencyISOCode>
                    <TraceID>39WKty782jxDpEVg8glTuH</TraceID>
                </Transaction>";

            var now = DateTime.Parse("2019-10-07T13:38:20.1");

            using (new TimeProviderTestScope(() => now))
            {
                var transaction =
                    new CloseReopenTransactionBuilder()
                    .WithType(Transaction.Type.Kind.CloseAccount)
                    .WithCustomerFriendlyDescription("Updated by service")
                    .WithProgramCode("EMPDISC")
                    .WithAccountPosRef("2200005")
                    .WithTransactionDateTime(now)
                    .WithBusinessDate(now)
                    .WithCardPresent(false)
                    .WithCurrency(Currency.Kind.DKK)
                    .WithTraceId(new Guid("8802d123-fb71-4e3b-a940-0abc769fd767"))
                    .Build();

                Assert.Equal(XElement.Parse(expected).ToString(), transaction.ToString());
            }
        }
Ejemplo n.º 2
0
        public void request_generation()
        {
            const string expected = @"
                <CRMMessage language=""en_US"" currency=""DKK"">
                  <RequestSource name=""acme.com"" version=""1"" />
                  <RequestCode>PostAccountTransaction</RequestCode>
                  <Transaction>
                    <Type>6</Type>
                    <CustFriendlyDesc>Updated by test</CustFriendlyDesc>
                    <ProgramCode>EMPDISC</ProgramCode>
                    <AccountPOSRef>2200005</AccountPOSRef>
                    <TransDateTime>2019-10-08 11:11:01.8</TransDateTime>
                    <BusinessDate>2019-10-08</BusinessDate>
                    <CardPresent>0</CardPresent>
                    <LocalCurrencyISOCode>DKK</LocalCurrencyISOCode>
                    <TraceID>Ark70tecHQrIBCXrS81XW</TraceID>
                  </Transaction>
                </CRMMessage>";

            _transaction = _transaction
                           .WithTransactionDateTime(new DateTime(2019, 10, 8, 11, 11, 1, 800))
                           .WithBusinessDate(new DateTime(2019, 10, 08));

            var request    = new PostAccountTransactionRequest("acme.com", _transaction);
            var requestXml = request.BuildRequestDocument();

            Assert.Equal(XE.Parse(expected).ToString(), requestXml.ToString());
        }
Ejemplo n.º 3
0
 public async Task RunAsync(PostAccountTransactionOptions o)
 {
     var transaction =
         new CloseReopenTransactionBuilder()
         .WithType(o.Type)
         .WithCustomerFriendlyDescription($"Updated by {Assembly.GetExecutingAssembly().GetName().Name}")
         .WithProgramCode(o.ProgramCode)
         .WithAccountPosRef(o.AccountPosRef);
     await _crmClient.PostAccountTransactionAsync(transaction);
 }
Ejemplo n.º 4
0
 public PostAccountTransactionTests()
 {
     _options        = Options.Create(A.OracleHospitalityClientOptions.Build());
     _executorLogger = new Mock <ILogger <OracleHospitalityExecutor> >().Object;
     _transaction    =
         new CloseReopenTransactionBuilder()
         .WithType(Type.Kind.ReopenAccount)
         .WithCustomerFriendlyDescription("Updated by test")
         .WithProgramCode("EMPDISC")
         .WithAccountPosRef("2200005")
         .WithTraceId("Ark70tecHQrIBCXrS81XW");
 }
Ejemplo n.º 5
0
        private async Task <PostAccountTransactionResponse> FlipAccountState(CrmClient client, GetCustomerResponse customer, GetProgramResponse program)
        {
            var accountNumber = (string)customer.Rows[0].Columns["PRIMARYPOSREF"];
            var accountState  = (bool)customer.Rows[0].Columns["ACTIVE"];
            var programCode   = (string)program.Rows[0].Columns["PROGRAMCODE"];

            var kind        = accountState ? Type.Kind.CloseAccount : Type.Kind.ReopenAccount;
            var transaction =
                new CloseReopenTransactionBuilder()
                .WithType(kind)
                .WithCustomerFriendlyDescription("Updated by test")
                .WithProgramCode(programCode)
                .WithAccountPosRef(accountNumber);

            return(await client.PostAccountTransactionAsync(transaction));
        }