public void TestDoubleFeeWasNotCharged() { var repo = new WalletRepository(); var hasPaid = repo.HasUserPaidTheService(conn, paidService, srvSubscriber.ID); Assert.IsFalse(hasPaid, "HasUserPaidTheService - пользователь еще не оплатил услугу"); // сбацать платеж var error = repo.ChargeFeeOnSubscription(conn, paidService, srvSubscriber.ID, false); Assert.AreEqual(WalletError.OK, error, "Платеж сформирован"); hasPaid = repo.HasUserPaidTheService(conn, paidService, srvSubscriber.ID); Assert.IsTrue(hasPaid, "HasUserPaidTheService - пользователь таки уже оплатил услугу"); var userMoneyBefore = conn.WALLET.First(w => w.User == srvSubscriber.ID); error = repo.ChargeFeeOnSubscription(conn, paidService, srvSubscriber.ID, false); Assert.AreEqual(WalletError.OK, error, "Повторный платеж сформирован"); var userMoneyAfter = conn.WALLET.First(w => w.User == srvSubscriber.ID); Assert.AreEqual(userMoneyBefore, userMoneyAfter, "Лишних денег не списано за повторный платеж"); }
public void TestGetUserWalletSubscriptionAndLastPaymentsInner() { var user = conn.PLATFORM_USER.First(u => u.SUBSCRIPTION.Count > 2 && u.TRANSFER.Count > 5); var subsCount = user.SUBSCRIPTION.Count; int paymentsTotal; List<Contract.Entity.Subscription> subscriptions; List<Transfer> transfers; WalletError error; var repo = new WalletRepository(); var wallet = repo.GetUserWalletSubscriptionAndLastPaymentsInner(user.Login, 100, out paymentsTotal, out subscriptions, out transfers, out error); Assert.AreEqual(WalletError.OK, error, "GetUserWalletSubscriptionAndLastPaymentsInner - должно быть ОК"); Assert.IsNotNull(wallet, "GetUserWalletSubscriptionAndLastPaymentsInner - кошелек должен быть получен"); Assert.Greater(paymentsTotal, 5, "GetUserWalletSubscriptionAndLastPaymentsInner - платежей должно быть больше N"); Assert.Greater(transfers.Count, 0, "GetUserWalletSubscriptionAndLastPaymentsInner - платежи должны быть получены"); Assert.AreEqual(subscriptions.Count, subsCount, "GetUserWalletSubscriptionAndLastPaymentsInner - подписки должны быть получены"); var distinctSubscriptionServiceAccounts = subscriptions.Select(s => s.PaidService.AccountId).Distinct().Count(); Assert.AreEqual(distinctSubscriptionServiceAccounts, subscriptions.Count, "GetUserWalletSubscriptionAndLastPaymentsInner - инф. о подписке должна быть заполнена"); }