Esempio n. 1
0
        public void MarketPayAccountHolderCreatedNotificationTest()
        {
            string json = GetFileContents("Mocks/marketpay/notification/account-holder-created-success.json");
            NotificationHandler             notificationHandler = new NotificationHandler();
            IGenericNotification            notificationMessage = notificationHandler.HandleMarketpayNotificationJson(json);
            AccountHolderCreateNotification accountHolderCreateNotificationMessage = (AccountHolderCreateNotification)notificationMessage;

            Assert.AreEqual("ACCOUNT_HOLDER_CREATED", accountHolderCreateNotificationMessage.EventType);
            Assert.IsNotNull(accountHolderCreateNotificationMessage.Content);
            Assert.AreEqual("AHC00000001", accountHolderCreateNotificationMessage.Content.AccountHolderCode);
            Assert.AreEqual("TSTPSPR0001", accountHolderCreateNotificationMessage.Content.PspReference);
            Assert.AreEqual("executing-user-key", accountHolderCreateNotificationMessage.ExecutingUserKey);
        }
        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);
        }