public void GetActualTransactionTest() { var wmTransferCache = new WebMoneyTransferCache(100, MoqPaymentAccessor.MakeMoq().Object); var r1 = wmTransferCache.GetActualTransaction(); //Первое обращение на 3 месяца назад Assert.NotNull(r1); Assert.AreEqual(1, r1.Count); var r2 = wmTransferCache.GetActualTransaction(); // Второе обращение на 30 секунд назад Assert.NotNull(r2); Assert.AreEqual(0, r2.Count); MoqPaymentAccessor.AddNewTransfer(); //Поступил новый платёж за последние 30 секунд var r3 = wmTransferCache.GetActualTransaction(); // Второе обращение на 30 секунд назад Assert.NotNull(r3); Assert.AreEqual(1, r3.Count); wmTransferCache.LastRequestDate = dateTimeNow.AddMonths(-5); // Неадекватные дата и Id предыдущей транзакции зечисления - должен запросить за 3 месяца wmTransferCache.LastRequestTransferId = 5; var r4 = wmTransferCache.GetActualTransaction(); Assert.NotNull(r4); Assert.AreEqual(2, r4.Count); // Неадекватные дата (она выправиться в логике "GetActualTransaction"), но адекватный Id предыдущего трансвера зачисления - // должен выбрать все транзакции ПОСЛЕ указанной (948396383). На данный момент будет выбрана только одна // т.к. всего транзакций на зачисление - две (первая указана - вторую вернёт). wmTransferCache.LastRequestDate = dateTimeNow.AddMonths(-5); wmTransferCache.LastRequestTransferId = 959076445; var r5 = wmTransferCache.GetActualTransaction(); Assert.NotNull(r5); Assert.AreEqual(1, r5.Count); Assert.AreEqual(959076446, r5[0].Id); wmTransferCache.LastRequestDate = new DateTime(3000, 1, 1); // генерируем исключение var r6 = wmTransferCache.GetActualTransaction(); Assert.IsNull(r6); wmTransferCache.LastRequestDate = new DateTime(2014, 1, 1, 0, 0, 0); // запрашиваем за дату в которой нет транзакций. var r7 = wmTransferCache.GetActualTransaction(); Assert.NotNull(r7); Assert.AreEqual(0, r7.Count); }
public void XmlPropertiesTest() { // Файл настроек отсутствует. var wmTransferCache = new WebMoneyTransferCache(1000, MoqPaymentAccessor.MakeMoq().Object); var testDateValue0 = wmTransferCache.LastRequestDate; var testIdValue0 = wmTransferCache.LastRequestTransferId; Assert.IsNull(testDateValue0); Assert.IsNull(testIdValue0); wmTransferCache.LastRequestDate = dateTimeNow; wmTransferCache.LastRequestTransferId = 5; var testDateValue1 = wmTransferCache.LastRequestDate; var testIdValue1 = wmTransferCache.LastRequestTransferId; Assert.AreEqual(dateTimeNow, testDateValue1); Assert.AreEqual(5, testIdValue1); //Файл настроек создан. Теперь попробуем из него прочитать данные новым экземпляром WebMoneyTransferCache var voidTransferCache = new WebMoneyTransferCache(1000, MoqPaymentAccessor.MakeMoq().Object); var testDateValue2 = voidTransferCache.LastRequestDate; var testIdValue2 = voidTransferCache.LastRequestTransferId; Assert.NotNull(testDateValue2 != null); // ReSharper disable PossibleInvalidOperationException Assert.AreEqual(dateTimeNow.Date, testDateValue2.Value.Date); // ReSharper restore PossibleInvalidOperationException Assert.AreEqual(dateTimeNow.Hour, testDateValue2.Value.Hour); Assert.AreEqual(dateTimeNow.Minute, testDateValue2.Value.Minute); Assert.AreEqual(dateTimeNow.Second, testDateValue2.Value.Second); Assert.AreEqual(5, testIdValue2); voidTransferCache.LastRequestDate = null; voidTransferCache.LastRequestTransferId = null; Assert.AreEqual(dateTimeNow.Date, testDateValue2.Value.Date); Assert.AreEqual(dateTimeNow.Hour, testDateValue2.Value.Hour); Assert.AreEqual(dateTimeNow.Minute, testDateValue2.Value.Minute); Assert.AreEqual(dateTimeNow.Second, testDateValue2.Value.Second); Assert.AreEqual(5, testIdValue2); }