public void Then1(string batchNumber, Table table)
        {
            var task = GenerateBulkCreditBus.GetSingleResponseAsync(5);

            task.Wait();

            response = task.Result;

            Assert.IsNotNull(response, "No response received");


            Assert.IsFalse(string.IsNullOrEmpty(response.transactions.First().bulkCreditVoucher.voucherBatch.scannedBatchNumber));
            Assert.AreEqual(batchNumber, response.transactions.First().bulkCreditVoucher.voucherBatch.scannedBatchNumber);

            table.CompareToSet(response.transactions.Select(c => new
            {
                documentReferenceNumber = c.associatedDebitVouchers.First().documentReferenceNumber.Trim(),
                bsbNumber       = c.associatedDebitVouchers.First().bsbNumber.Trim(),
                accountNumber   = c.associatedDebitVouchers.First().accountNumber.Trim(),
                auxDom          = c.associatedDebitVouchers.First().auxDom.Trim(),
                extraAuxDom     = c.associatedDebitVouchers.First().extraAuxDom.Trim(),
                transactionCode = c.associatedDebitVouchers.First().transactionCode.Trim(),
                amount          = c.associatedDebitVouchers.First().amount.Trim()
            }));
        }
        public void When1(Table table)
        {
            var publishInfo = table.CreateInstance <PublishInformation>();

            message.jobIdentifier = publishInfo.CorrelationId;

            // synchronous Publish will wait until confirmed publish or timeout exception thrown
            GenerateBulkCreditBus.Publish(message, publishInfo.CorrelationId, publishInfo.RoutingKey);

            Thread.Sleep(publishInfo.PublishTimeOutSeconds * 1000);
        }
        public void Given2(string batchNumber, Table table)
        {
            using (var context = GenerateBulkCreditBus.CreateContext())
            {
                var dbRows = table.CreateSet <DipsNabChq>();

                foreach (var dbRow in dbRows)
                {
                    context.NabChqPods.Add(dbRow);
                }

                context.SaveChanges();
            }
        }
        public void Given1(string batchNumber, Table table)
        {
            var batch = batchNumber.PadRight(8, ' ');

            using (var context = GenerateBulkCreditBus.CreateContext())
            {
                context.Database.ExecuteSqlCommand("DELETE FROM [Queue] WHERE [S_BATCH] = @p0", batch);
                context.Database.ExecuteSqlCommand("DELETE FROM [NabChq] WHERE [S_BATCH] = @p0", batch);
                context.Database.ExecuteSqlCommand("DELETE FROM [DB_INDEX] WHERE [BATCH] = @p0", batch);

                var queue = table.CreateInstance <DipsQueue>();

                context.Queues.Add(queue);

                context.SaveChanges();
            }
        }