Exemplo n.º 1
0
        public void MarketPayBeneficiarySetupNotificationTest()
        {
            string json = GetFileContents("Mocks/marketpay/notification/beneficiary-setup.json");
            NotificationHandler          notificationHandler = new NotificationHandler();
            IGenericNotification         notificationMessage = notificationHandler.HandleMarketpayNotificationJson(json);
            BeneficiarySetupNotification notification        = (BeneficiarySetupNotification)notificationMessage;

            Assert.AreEqual("BENEFICIARY_SETUP", notification.EventType);
            Assert.IsNotNull(notification.Content);
            Assert.AreEqual("136058999", notification.Content.SourceAccountCode);
            Assert.AreEqual("117001608", notification.Content.DestinationAccountCode);
        }
        public override object ReadJson(JsonReader reader,
                                        Type objectType, object existingValue,
                                        JsonSerializer serializer)
        {
            var jsonObject   = JObject.Load(reader);
            var notification = default(IGenericNotification);

            switch (jsonObject["eventType"].ToString())
            {
            case "ACCOUNT_CREATED":
                notification = new AccountCreateNotification();
                break;

            case "ACCOUNT_CLOSED":
                notification = new AccountCloseNotification();
                break;

            case "ACCOUNT_UPDATED":
                notification = new AccountUpdateNotification();
                break;

            case "ACCOUNT_FUNDS_BELOW_THRESHOLD":
                notification = new AccountFundsBelowThresholdNotification();
                break;

            case "ACCOUNT_HOLDER_CREATED":
                notification = new AccountHolderCreateNotification();
                break;

            case "ACCOUNT_HOLDER_VERIFICATION":
                notification = new AccountHolderVerificationNotification();
                break;

            case "ACCOUNT_HOLDER_STATUS_CHANGE":
                notification = new AccountHolderStatusChangeNotification();
                break;

            case "ACCOUNT_HOLDER_PAYOUT":
                notification = new AccountHolderPayoutNotification();
                break;

            case "ACCOUNT_HOLDER_UPDATED":
                notification = new AccountHolderUpdateNotification();
                break;

            case "ACCOUNT_HOLDER_STORE_STATUS_CHANGE":
                notification = new AccountHolderStoreStatusChangeNotification();
                break;

            case "ACCOUNT_HOLDER_UPCOMING_DEADLINE":
                notification = new AccountHolderUpcomingDeadlineNotification();
                break;

            case "BENEFICIARY_SETUP":
                notification = new BeneficiarySetupNotification();
                break;

            case "SCHEDULED_REFUNDS":
                notification = new ScheduledRefundsNotification();
                break;

            case "COMPENSATE_NEGATIVE_BALANCE":
                notification = new CompensateNegativeBalanceNotification();
                break;

            case "PAYMENT_FAILURE":
                notification = new PaymentFailureNotification();
                break;

            case "REPORT_AVAILABLE":
                notification = new ReportAvailableNotification();
                break;

            case "TRANSFER_FUNDS":
                notification = new TransferFundsNotification();
                break;

            case "DIRECT_DEBIT_INITIATED":
                notification = new DirectDebitInitiatedNotification();
                break;

            case "REFUND_FUNDS_TRANSFER":
                notification = new RefundFundsTransferNotification();
                break;
            }

            serializer.Populate(jsonObject.CreateReader(), notification);
            return(notification);
        }