public void CompareToTest()
        {
            var my1 = new MonthYear(1, 2000);
            var my2 = new MonthYear(2, 2000);
            var actual = my1.CompareTo(my2);
            Assert.Less(actual, 0);

            my1 = new MonthYear(1, 2000);
            my2 = new MonthYear(1, 2001);
            actual = my1.CompareTo(my2);
            Assert.Less(actual, 0);

            my1 = new MonthYear(1, 2000);
            my2 = new MonthYear(1, 2000);
            actual = my1.CompareTo(my2);
            Assert.AreEqual(actual, 0);

            my1 = new MonthYear(3, 2000);
            my2 = new MonthYear(2, 2000);
            actual = my1.CompareTo(my2);
            Assert.Greater(actual, 0);

            my1 = new MonthYear(1, 2002);
            my2 = new MonthYear(1, 2001);
            actual = my1.CompareTo(my2);
            Assert.Greater(actual, 0);
        }
        public void ArithmeticOperatorsTest()
        {
            var my1 = new MonthYear(12, 1999);
            var my2 = new MonthYear(1, 2000);

            Assert.AreEqual(1, my2.Month);
            Assert.AreEqual(2, (my2 + 1).Month);
            Assert.AreEqual(1, (my1 + 1).Month);
            Assert.AreEqual(11, (my1 - 1).Month);
            Assert.AreEqual(12, (my2 - 1).Month);
            Assert.AreEqual(1, my2 - my1);
            Assert.AreEqual(-1, my1 - my2);
            Assert.AreEqual(0, my1 - my1);
        }
        public void AddMonthsTest()
        {
            var my = new MonthYear(1, 2000);

            var actual = my.AddMonths(1);
            var expected = new MonthYear(2, 2000);
            Assert.AreEqual(expected.Month, actual.Month);
            Assert.AreEqual(expected.Year, actual.Year);

            actual = my.AddMonths(-1);
            expected = new MonthYear(12, 1999);
            Assert.AreEqual(expected.Month, actual.Month);
            Assert.AreEqual(expected.Year, actual.Year);
        }
        public void ComparisonOperatorsTest()
        {
            var my1 = new MonthYear(12, 1999);
            var my2 = new MonthYear(1, 2000);
            var my3 = new MonthYear(1, 2000);

            Assert.True(my1 != my2);
            Assert.True(my2 != my1);
            Assert.True(my1 < my2);
            Assert.True(my2 > my1);
            Assert.True(my1 <= my2);
            Assert.True(my2 >= my1);
            Assert.True(my2 == my3);
            Assert.True(my3 == my2);
            Assert.True(my3 <= my2);
            Assert.True(my2 <= my3);
            Assert.True(my2 >= my3);
            Assert.True(my3 >= my2);
        }
Example #5
0
 public CreditCardBill GetCurrentBill(MonthYear monthYear)
 {
     return(Bills
            .Where(x => x.DueDate.Year == monthYear.Year && x.DueDate.Month == monthYear.Month)
            .SingleOrDefault());
 }
Example #6
0
        public static Income Load(Guid id, Title title, AmountRecordCollection amountRecords, MonthYear referenceDate)
        {
            Income income = new Income();

            income.Id            = id;
            income.Title         = title;
            income.AmountRecords = amountRecords;
            income.ReferenceDate = referenceDate;
            return(income);
        }
 private MonthYearRange CreateRangeFromJanuaryToGivenMonth(
     MonthYear monthYear)
 {
     return(new MonthYearRange(new MonthYear(monthYear.Year, 1), monthYear));
 }
Example #8
0
 public static MonthlyReturn GetMonth(
     this IEnumerable <MonthlyReturn> allReturns,
     MonthYear monthYear)
 {
     return(allReturns.FirstOrDefault(r => r.MonthYear == monthYear));
 }
Example #9
0
        public void Should_MonthYear_Now_Created()
        {
            MonthYear monthYear = MonthYear.Now;

            Assert.NotNull(monthYear);
        }
 public void ToStringTest()
 {
     var my = new MonthYear(1, 2000);
     var expected = my.GetDate(1).ToString("MM/yyyy");
     var actual = my.ToString();
     Assert.AreEqual(expected, actual);
 }
Example #11
0
 public PortfolioListPageAdapterTests()
 {
     _monthYear = new MonthYear(2014, 5);
 }
        public void DateComparisonTests()
        {
            var my1 = new MonthYear(12, 1999);
            var my2 = new MonthYear(1, 2000);

            var dt1 = new DateTime(1999, 12, 1);
            var dt2 = new DateTime(2000, 1, 1);
            var dt3 = new DateTime(2000, 2, 1);

            MonthYear my3 = dt3;

            Assert.True(my1.Equals(dt1));
            Assert.False(my1.Equals(dt2));
            Assert.True(my1.CompareTo(dt1) == 0);
            Assert.True(my2.CompareTo(dt1) > 0);
            Assert.True(my1.Equals(dt1));
            Assert.True(my1.Equals((object)my1));

            Assert.True(my1.Equals(dt1));
            Assert.False(my1.Equals(dt2));
            my1++;
            Assert.True(my1.Equals(dt2));
            Assert.False(my1.Equals(dt1));
            my1--;
            Assert.False(my1.Equals(dt2));
            Assert.True(my1.Equals(dt1));
        }
        public List <AsForTableDto> GetByPlanPosteReferences(List <PlanPosteReference> planPosteReferences, MonthYear monthYear)
        {
            DateTime minDate = monthYear.Month.Id == (int)EnumMonth.BalanceSheetYear
                ? Convert.ToDateTime($"01/01/{monthYear.Year}")
                : Convert.ToDateTime($"01/{monthYear.Month.Id}/{monthYear.Year}");

            DateTime maxDate = monthYear.Month.Id == (int)EnumMonth.BalanceSheetYear
                ? Convert.ToDateTime($"31/12/{monthYear.Year}")
                : DateHelper.GetLastDayOfMonth(minDate);

            var accountStatements = _accountStatementRepository.GetByDatePlanPosteReferenceList(planPosteReferences, minDate, maxDate);

            return(_mapper.Map <List <AsForTableDto> >(accountStatements));
        }
        public async Task Adds_Key_To_Cache()
        {
            const string  GENERATED_REQUEST_KEY = "1v9ESIpTOJ1czY9SZW5oWf2DiRWrNOB4kHdPFODIYjI=";
            const int     RETURNED_PAYMENT_ID   = 1;
            const string  CARD_NUMBER           = "4111111111111111";
            const string  CVV      = "123";
            const string  CURRENCY = "GBP";
            const string  OWNER    = "owner";
            const decimal AMOUNT   = .1m;
            var           EXPIRY   = new MonthYear {
                Year = 2021, Month = 01
            };

            var testNow     = new DateTime(2021, 02, 01);
            var nowProvider = new NowProvider(testNow);

            var request = new ProcessPaymentRequest
            {
                CardNumber = CARD_NUMBER,
                Amount     = AMOUNT,
                Currency   = CURRENCY,
                CVV        = CVV,
                Expiry     = EXPIRY,
                Owner      = OWNER
            };

            var acqBankMock = new Mock <IAcquiringBank>();

            acqBankMock
            .Setup(mock => mock.SendPayment(It.IsAny <AcquiringBankRequest>()))
            .ReturnsAsync(new AcquiringBankResponse
            {
                Status    = AcquiringBankResponseStatus.Success,
                PaymentId = RETURNED_PAYMENT_ID
            });

            var memoryCacheMock = new Mock <IMemoryCache>();
            var cacheEntryMock  = new Mock <ICacheEntry>();

            memoryCacheMock
            .Setup(mock => mock.TryGetValue(It.IsAny <string>(), out It.Ref <object> .IsAny))
            .Returns(false);

            memoryCacheMock
            .Setup(mock => mock.CreateEntry(It.IsAny <object>()))
            .Returns(cacheEntryMock.Object);

            using var context = Setup.CreateContext();

            var handler = new ProcessPaymentHandler(
                acqBankMock.Object,
                nowProvider,
                memoryCacheMock.Object,
                _logger,
                _cachingOptions,
                context);
            var result = await handler.Handle(request, CancellationToken.None);

            memoryCacheMock.Verify(
                mock => mock.CreateEntry(GENERATED_REQUEST_KEY),
                Times.Once);
        }
        public async Task Stores_Masked_Card_Details()
        {
            const int     RETURNED_PAYMENT_ID = 1;
            const string  CARD_NUMBER         = "4111111111111111";
            const string  CVV      = "123";
            const string  CURRENCY = "GBP";
            const string  OWNER    = "owner";
            const decimal AMOUNT   = .1m;
            var           EXPIRY   = new MonthYear {
                Year = 2021, Month = 01
            };

            var testNow     = new DateTime(2021, 02, 01);
            var nowProvider = new NowProvider(testNow);

            var request = new ProcessPaymentRequest
            {
                CardNumber = CARD_NUMBER,
                Amount     = AMOUNT,
                Currency   = CURRENCY,
                CVV        = CVV,
                Expiry     = EXPIRY,
                Owner      = OWNER
            };

            var acqBankMock = new Mock <IAcquiringBank>();

            acqBankMock
            .Setup(mock => mock.SendPayment(It.IsAny <AcquiringBankRequest>()))
            .ReturnsAsync(new AcquiringBankResponse
            {
                Status    = AcquiringBankResponseStatus.Success,
                PaymentId = RETURNED_PAYMENT_ID
            });

            var memoryCacheMock = new Mock <IMemoryCache>();
            var cacheEntryMock  = new Mock <ICacheEntry>();

            memoryCacheMock
            .Setup(mock => mock.TryGetValue(It.IsAny <string>(), out It.Ref <object> .IsAny))
            .Returns(false);

            memoryCacheMock
            .Setup(mock => mock.CreateEntry(It.IsAny <object>()))
            .Returns(cacheEntryMock.Object);

            using var context = Setup.CreateContext();

            var handler = new ProcessPaymentHandler(
                acqBankMock.Object,
                nowProvider,
                memoryCacheMock.Object,
                _logger,
                _cachingOptions,
                context);
            var result = (await handler.Handle(request, CancellationToken.None)).SuccessOrDefault;

            Assert.IsTrue(result.Success);

            // assert that a record is in the db for this payment id,
            var foundPayment = context.ProcessedPayments.Find(result.PaymentId);

            // should be masked
            Assert.AreEqual("************1111", foundPayment.CardNumber);
            Assert.AreEqual("***", foundPayment.CVV);
            Assert.AreEqual(AMOUNT, foundPayment.Amount);
            Assert.AreEqual(CURRENCY, foundPayment.Currency);
            Assert.AreEqual(OWNER, foundPayment.Owner);

            Assert.AreEqual(EXPIRY.Year, foundPayment.Expiry.Year);
            Assert.AreEqual(EXPIRY.Month, foundPayment.Expiry.Month);
        }
        public async Task Unsuccesful_Bank_Result_Does_Not_Throw()
        {
            const int     RETURNED_PAYMENT_ID = 1;
            const string  CARD_NUMBER         = "4111111111111111";
            const string  CVV      = "123";
            const string  CURRENCY = "GBP";
            const string  OWNER    = "owner";
            const decimal AMOUNT   = .1m;
            var           EXPIRY   = new MonthYear {
                Year = 2021, Month = 01
            };

            var testNow     = new DateTime(2021, 02, 01);
            var nowProvider = new NowProvider(testNow);

            var request = new ProcessPaymentRequest
            {
                CardNumber = CARD_NUMBER,
                Amount     = AMOUNT,
                Currency   = CURRENCY,
                CVV        = CVV,
                Expiry     = EXPIRY,
                Owner      = OWNER
            };

            using var context = Setup.CreateContext();

            var acqBankMock = new Mock <IAcquiringBank>();

            acqBankMock
            .Setup(mock => mock.SendPayment(It.IsAny <AcquiringBankRequest>()))
            .ReturnsAsync(new AcquiringBankResponse
            {
                Status    = AcquiringBankResponseStatus.Acquiring_Bank_Unreachable,
                PaymentId = RETURNED_PAYMENT_ID
            });

            var memoryCacheMock = new Mock <IMemoryCache>();
            var cacheEntryMock  = new Mock <ICacheEntry>();

            memoryCacheMock
            .Setup(mock => mock.TryGetValue(It.IsAny <string>(), out It.Ref <object> .IsAny))
            .Returns(false);

            memoryCacheMock
            .Setup(mock => mock.CreateEntry(It.IsAny <object>()))
            .Returns(cacheEntryMock.Object);

            // use mock of acqbank to ensure we get a failure here
            var handler = new ProcessPaymentHandler(
                acqBankMock.Object,
                nowProvider,
                memoryCacheMock.Object,
                _logger,
                _cachingOptions,
                context);
            var result = (await handler.Handle(request, CancellationToken.None)).SuccessOrDefault;

            // ensure payment is still saved in failed state
            var foundPayment = context.ProcessedPayments.Find(result.PaymentId);

            Assert.AreEqual(RETURNED_PAYMENT_ID, result.PaymentId);
            Assert.IsFalse(result.Success);

            Assert.AreEqual("************1111", foundPayment.CardNumber);
            Assert.AreEqual("***", foundPayment.CVV);
            Assert.AreEqual(AMOUNT, foundPayment.Amount);
            Assert.AreEqual(CURRENCY, foundPayment.Currency);
            Assert.AreEqual(OWNER, foundPayment.Owner);

            Assert.AreEqual(EXPIRY.Year, foundPayment.Expiry.Year);
            Assert.AreEqual(EXPIRY.Month, foundPayment.Expiry.Month);
        }
Example #17
0
        public AdvancedPageViewModel() : base()
        {
            Culture = CultureInfo.CreateSpecificCulture("en-GB");

            // testing all kinds of adding events
            // when initializing collection
            Events = new EventCollection
            {
                [DateTime.Now.AddDays(-3)] = new List <AdvancedEventModel>(GenerateEvents(10, "Cool")),
                [DateTime.Now.AddDays(-6)] = new DayEventCollection <AdvancedEventModel>(Color.Purple, Color.Purple)
                {
                    new AdvancedEventModel {
                        Name = "Cool event1", Description = "This is Cool event1's description!", Starting = new DateTime()
                    },
                    new AdvancedEventModel {
                        Name = "Cool event2", Description = "This is Cool event2's description!", Starting = new DateTime()
                    }
                }
            };

            //Adding a day with a different dot color
            Events.Add(DateTime.Now.AddDays(-2), new DayEventCollection <AdvancedEventModel>(GenerateEvents(10, "Cool"))
            {
                EventIndicatorColor = Color.Blue, EventIndicatorSelectedColor = Color.Blue
            });
            Events.Add(DateTime.Now.AddDays(-4), new DayEventCollection <AdvancedEventModel>(GenerateEvents(10, "Cool"))
            {
                EventIndicatorColor = Color.Green, EventIndicatorSelectedColor = Color.White
            });
            Events.Add(DateTime.Now.AddDays(-5), new DayEventCollection <AdvancedEventModel>(GenerateEvents(10, "Cool"))
            {
                EventIndicatorColor = Color.Orange, EventIndicatorSelectedColor = Color.Orange
            });

            // with add method
            Events.Add(DateTime.Now.AddDays(-1), new List <AdvancedEventModel>(GenerateEvents(5, "Cool")));

            // with indexer
            Events[DateTime.Now] = new List <AdvancedEventModel>(GenerateEvents(2, "Boring"));

            MonthYear = MonthYear.AddMonths(1);

            Task.Delay(5000).ContinueWith(_ =>
            {
                // indexer - update later
                Events[DateTime.Now] = new ObservableCollection <AdvancedEventModel>(GenerateEvents(10, "Cool"));

                // add later
                Events.Add(DateTime.Now.AddDays(3), new List <AdvancedEventModel>(GenerateEvents(5, "Cool")));

                // indexer later
                Events[DateTime.Now.AddDays(10)] = new List <AdvancedEventModel>(GenerateEvents(10, "Boring"));

                // add later
                Events.Add(DateTime.Now.AddDays(15), new List <AdvancedEventModel>(GenerateEvents(10, "Cool")));


                Task.Delay(3000).ContinueWith(t =>
                {
                    MonthYear = MonthYear.AddMonths(-2);

                    // get observable collection later
                    var todayEvents = Events[DateTime.Now] as ObservableCollection <AdvancedEventModel>;

                    // insert/add items to observable collection
                    todayEvents.Insert(0, new AdvancedEventModel {
                        Name = "Cool event insert", Description = "This is Cool event's description!", Starting = new DateTime()
                    });
                    todayEvents.Add(new AdvancedEventModel {
                        Name = "Cool event add", Description = "This is Cool event's description!", Starting = new DateTime()
                    });
                }, TaskScheduler.FromCurrentSynchronizationContext());
            }, TaskScheduler.FromCurrentSynchronizationContext());
        }
Example #18
0
        public static Expense Load(Guid id, Title title, AmountRecordCollection amountRecords, MonthYear referenceDate)
        {
            Expense expense = new Expense();

            expense.Id            = id;
            expense.Title         = title;
            expense.AmountRecords = amountRecords;
            expense.ReferenceDate = referenceDate;
            return(expense);
        }
        public void EqualsReturnFalseIfIsNotAMonthYear()
        {
            var my1 = new MonthYear(1, 2000);
            var my2 = 0;
            var actual = my1.Equals(my2);

            Assert.False(actual);
        }
Example #20
0
 public static OverviewDto Create(MonthYear monthYear, MonthSummary summary, IReadOnlyList <Category> categories)
 => new OverviewDto(monthYear, summary, categories);
 public InvestmentVehicleBuilderForTests AddGrossReturn(
     MonthYear monthYear,
     decimal returnValue)
 {
     return(AddReturn(monthYear, returnValue, FeeType.GrossOfFees));
 }
        public void EqualsTest()
        {
            var my1 = new MonthYear(1, 2000);
            var my2 = new MonthYear(2, 2000);
            var actual = my1.Equals(my2);
            Assert.False(actual);

            my1 = new MonthYear(1, 2000);
            my2 = new MonthYear(1, 2000);
            actual = my1.Equals(my2);
            Assert.True(actual);
        }
Example #23
0
        public static Investment Load(Guid id, Title title, AmountRecordCollection amountRecords, MonthYear referenceDate)
        {
            Investment investment = new Investment();

            investment.Id            = id;
            investment.Title         = title;
            investment.AmountRecords = amountRecords;
            investment.ReferenceDate = referenceDate;
            return(investment);
        }
Example #24
0
 public override string ToString() =>
 $"Id={Id}, BranchId={BranchId}, MonthYear={MonthYear.ToString("Y")}, Value={Value}";
        public void GetDateTest()
        {
            var date = new DateTime(2000, 1, 14);
            var my = new MonthYear(1, 2000);
            Assert.AreEqual(date, my.GetDate(14));

            date = new DateTime(2000, 2, 29);
            my = new MonthYear(2, 2000);
            Assert.AreEqual(date, my.GetDate(29));
        }
 public static CalculateReturnRequest OneMonth(
     MonthYear endMonth)
 {
     return(new CalculateReturnRequest(
                endMonth, 1));
 }
 public void GetDateTestShouldFailIfDayIsInvalid()
 {
     var my = new MonthYear(2, 2001);
     Assert.Throws<ArgumentOutOfRangeException>(() => my.GetDate(29));
 }
 public OmniDataFileLineModelFactory(
     MonthYear endEndMonth)
 {
     _endMonth            = endEndMonth;
     _januaryToGivenMonth = CreateRangeFromJanuaryToGivenMonth(endEndMonth);
 }
        public void GetLastDayTest()
        {
            var my = new MonthYear(1, 2000);
            var actual = my.GetLastDay();
            var expected = new DateTime(2000, 1, 31);

            Assert.AreEqual(expected, actual);

            my = new MonthYear(2, 2000);
            actual = my.GetLastDay();
            expected = new DateTime(2000, 2, 29);

            Assert.AreEqual(expected, actual);
        }
Example #30
0
 public MonthYear GetCurrentMonthYear() => MonthYear.Create(DateTime.Today.Year, DateTime.Today.Month);
 public void GetNthWorkDayShouldFailWithInvalidnthWorkday()
 {
     var my = new MonthYear(1, 2000);
     Assert.Throws<ArgumentOutOfRangeException>(() => my.GetNthWorkDay(0, null));
 }
        /// <summary>
        /// Combines multiple cleanup tags into {{multiple issues}} template, ensures parameters have correct case, removes date parameter where not needed
        /// only for English-language wikis
        /// </summary>
        /// <param name="articleText">The wiki text of the article.</param>
        /// <returns>The modified article text.</returns>
        public string MultipleIssuesOld(string articleText)
        {
            if (!Variables.LangCode.Equals("en"))
            {
                return(articleText);
            }

            // convert title case parameters within {{Multiple issues}} to lower case
            foreach (Match m in WikiRegexes.MultipleIssuesInTitleCase.Matches(articleText))
            {
                string firstPart          = m.Groups[1].Value;
                string parameterFirstChar = m.Groups[2].Value.ToLower();
                string lastPart           = m.Groups[3].Value;

                articleText = articleText.Replace(m.Value, firstPart + parameterFirstChar + lastPart);
            }

            // remove any date field within  {{Multiple issues}} if no 'expert=subject' field using it
            string MICall = WikiRegexes.MultipleIssues.Match(articleText).Value;

            if (MICall.Length > 10 && (Tools.GetTemplateParameterValue(MICall, "expert").Length == 0 ||
                                       MonthYear.IsMatch(Tools.GetTemplateParameterValue(MICall, "expert"))))
            {
                articleText = articleText.Replace(MICall, Tools.RemoveTemplateParameter(MICall, "date"));
            }

            // get the zeroth section (text upto first heading)
            string zerothSection = Tools.GetZerothSection(articleText);

            // get the rest of the article including first heading (may be null if entire article falls in zeroth section)
            string restOfArticle = articleText.Substring(zerothSection.Length);
            string ESDate        = "";

            if (ExpertSubject.IsMatch(zerothSection))
            {
                ESDate        = Tools.GetTemplateParameterValue(ExpertSubject.Match(zerothSection).Value, "date");
                zerothSection = Tools.RemoveTemplateParameter(zerothSection, "expert-subject", "date");
            }

            int tagsToAdd = WikiRegexes.MultipleIssuesTemplates.Matches(zerothSection).Count;

            // if currently no {{Multiple issues}} and less than the min number of cleanup templates, do nothing
            if (!WikiRegexes.MultipleIssues.IsMatch(zerothSection) && WikiRegexes.MultipleIssuesTemplates.Matches(zerothSection).Count < MinCleanupTagsToCombine)
            {
                // article issues with one issue -> single issue tag (e.g. {{multiple issues|cleanup=January 2008}} to {{cleanup|date=January 2008}} etc.)
                articleText = WikiRegexes.MultipleIssues.Replace(articleText, MultipleIssuesOldSingleTagME);

                return(MultipleIssuesBLPUnreferenced(articleText));
            }

            // only add tags to multiple issues if new tags + existing >= MinCleanupTagsToCombine
            MICall = Tools.RenameTemplateParameter(WikiRegexes.MultipleIssues.Match(zerothSection).Value, "OR", "original research");

            if ((WikiRegexes.MultipleIssuesTemplateNameRegex.Matches(MICall).Count + tagsToAdd) < MinCleanupTagsToCombine || tagsToAdd == 0)
            {
                // article issues with one issue -> single issue tag (e.g. {{multiple issues|cleanup=January 2008}} to {{cleanup|date=January 2008}} etc.)
                articleText = WikiRegexes.MultipleIssues.Replace(articleText, (MultipleIssuesOldSingleTagME));

                return(MultipleIssuesBLPUnreferenced(articleText));
            }

            string newTags = "";

            foreach (Match m in WikiRegexes.MultipleIssuesTemplates.Matches(zerothSection))
            {
                // all fields except COI, OR, POV and ones with BLP should be lower case
                string singleTag = m.Groups[1].Value;
                string tagValue  = m.Groups[2].Value;
                if (!WikiRegexes.CoiOrPovBlp.IsMatch(singleTag))
                {
                    singleTag = singleTag.ToLower();
                }

                string singleTagLower = singleTag.ToLower();

                // tag renaming
                if (singleTagLower.Equals("cleanup-rewrite"))
                {
                    singleTag = "rewrite";
                }
                else if (singleTagLower.Equals("cleanup-laundry"))
                {
                    singleTag = "laundrylists";
                }
                else if (singleTagLower.Equals("cleanup-jargon"))
                {
                    singleTag = "jargon";
                }
                else if (singleTagLower.Equals("primary sources"))
                {
                    singleTag = "primarysources";
                }
                else if (singleTagLower.Equals("news release"))
                {
                    singleTag = "newsrelease";
                }
                else if (singleTagLower.Equals("game guide"))
                {
                    singleTag = "gameguide";
                }
                else if (singleTagLower.Equals("travel guide"))
                {
                    singleTag = "travelguide";
                }
                else if (singleTagLower.Equals("very long"))
                {
                    singleTag = "verylong";
                }
                else if (singleTagLower.Equals("cleanup-reorganise"))
                {
                    singleTag = "restructure";
                }
                else if (singleTagLower.Equals("cleanup-reorganize"))
                {
                    singleTag = "restructure";
                }
                else if (singleTagLower.Equals("cleanup-spam"))
                {
                    singleTag = "spam";
                }
                else if (singleTagLower.Equals("criticism section"))
                {
                    singleTag = "criticisms";
                }
                else if (singleTagLower.Equals("pov-check"))
                {
                    singleTag = "pov-check";
                }
                else if (singleTagLower.Equals("expert-subject"))
                {
                    singleTag = "expert";
                }

                // copy edit|for=grammar --> grammar
                if (singleTag.Replace(" ", "").Equals("copyedit") && Tools.GetTemplateParameterValue(m.Value, "for").Equals("grammar"))
                {
                    singleTag = "grammar";
                    tagValue  = Regex.Replace(tagValue, @"for\s*=\s*grammar\s*\|?", "");
                }

                // expert must have a parameter
                if (singleTag == "expert" && tagValue.Trim().Length == 0)
                {
                    continue;
                }

                // for tags with a parameter, that parameter must be the date
                if ((tagValue.Contains("=") && Regex.IsMatch(tagValue, @"(?i)date")) || tagValue.Length == 0 || singleTag == "expert")
                {
                    tagValue = Regex.Replace(tagValue, @"^[Dd]ate\s*=\s*", "= ");

                    // every tag except expert needs a date
                    if (!singleTag.Equals("expert") && tagValue.Length == 0)
                    {
                        tagValue = @"= {{subst:CURRENTMONTHNAME}} {{subst:CURRENTYEAR}}";
                    }
                    else if (!tagValue.Contains(@"="))
                    {
                        tagValue = @"= " + tagValue;
                    }

                    // don't add duplicate tags
                    if (MICall.Length == 0 || Tools.GetTemplateParameterValue(MICall, singleTag).Length == 0)
                    {
                        newTags += @"|" + singleTag + @" " + tagValue;
                    }
                }
                else
                {
                    continue;
                }

                newTags = newTags.Trim();

                // remove the single template
                zerothSection = zerothSection.Replace(m.Value, "");
            }

            if (ESDate.Length > 0)
            {
                newTags += ("|date = " + ESDate);
            }

            // if article currently has {{Multiple issues}}, add tags to it
            string ai = WikiRegexes.MultipleIssues.Match(zerothSection).Value;

            if (ai.Length > 0)
            {
                zerothSection = zerothSection.Replace(ai, ai.Substring(0, ai.Length - 2) + newTags + @"}}");
            }

            else // add {{Multiple issues}} to top of article, metaDataSorter will arrange correctly later
            {
                zerothSection = @"{{Multiple issues" + newTags + "}}\r\n" + zerothSection;
            }

            articleText = zerothSection + restOfArticle;

            // Conversions() will add any missing dates and correct ...|wikify date=May 2008|...
            return(MultipleIssuesBLPUnreferenced(articleText));
        }
        public void NextTest()
        {
            var my = new MonthYear(1, 2000);
            var actual = my.Next();
            var expected = new MonthYear(2, 2000);
            Assert.AreEqual(expected.Month, actual.Month);
            Assert.AreEqual(expected.Year, actual.Year);

            my = new MonthYear(12, 2000);
            actual = my.Next();
            expected = new MonthYear(1, 2001);
            Assert.AreEqual(expected.Month, actual.Month);
            Assert.AreEqual(expected.Year, actual.Year);
        }
Example #34
0
 public CreditCardBill CreateBill(MonthYear monthYear) => CreditCardBill.Create(this, monthYear);
        public void ParseTest()
        {
            var my = MonthYear.Parse("1/2000");
            var expected = new MonthYear(1, 2000);

            Assert.AreEqual(expected.Month, my.Month);
            Assert.AreEqual(expected.Year, my.Year);
        }
Example #36
0
        public IEnumerable <IStatusPerBarangModel> GetByMonthYear(MonthYear startMonthYear, MonthYear endMonthYear)
        {
            using (var context = new DbContext())
            {
                var queryStr = _queryStr.Replace("{MonthYearPembelian}", "(MONTH(pb.tanggal) >= @startMonth AND YEAR(pb.tanggal) >= @startYear AND " +
                                                 "MONTH(pb.tanggal) <= @endMonth AND YEAR(pb.tanggal) <= @endYear)");
                queryStr = queryStr.Replace("{MonthYearPenjualan}", "(MONTH(pj.tanggal) >= @startMonth AND YEAR(pj.tanggal) >= @startYear AND " +
                                            "MONTH(pj.tanggal) <= @endMonth AND YEAR(pj.tanggal) <= @endYear)");

                return(context.Conn.Query <StatusPerBarangModel>(queryStr, new { startMonth = startMonthYear.Month, startYear = startMonthYear.Year,
                                                                                 endMonth = endMonthYear.Month, endYear = endMonthYear.Year }));
            }
        }
        public void ParseWithFormatTest()
        {
            var my = MonthYear.Parse("12.2000", "MM.YYYY");
            var expected = new MonthYear(12, 2000);

            Assert.AreEqual(expected.Month, my.Month);
            Assert.AreEqual(expected.Year, my.Year);
        }
 public void ToMonthYearTest()
 {
     var date = new DateTime(2000, 1, 14);
     var expected = new MonthYear(1, 2000);
     var actual = date.ToMonthYear();
     Assert.AreEqual(expected.Month, actual.Month);
     Assert.AreEqual(expected.Year, actual.Year);
 }
        public void PreviousTest()
        {
            var my = new MonthYear(1, 2000);
            var actual = my.Previous();
            var expected = new MonthYear(12, 1999);
            Assert.AreEqual(expected.Month, actual.Month);
            Assert.AreEqual(expected.Year, actual.Year);

            my = new MonthYear(2, 2000);
            actual = my.Previous();
            expected = new MonthYear(1, 2000);
            Assert.AreEqual(expected.Month, actual.Month);
            Assert.AreEqual(expected.Year, actual.Year);
        }
Example #40
0
        public async Task GetPastPendingStatement()
        {
            // Arrange
            testsUtils.CleanAll();

            int categoryId = testsUtils.AddSingleCategory();

            dbUtils.Insert(new DbStatementDto()
            {
                Amount     = 104,
                CategoryId = categoryId,
                Direction  = 0,
                DueDate    = DateTime.Parse("2018-04-15")
            });
            dbUtils.Insert(new DbStatementDto()
            {
                Amount      = 204,
                CategoryId  = categoryId,
                Direction   = 0,
                DueDate     = DateTime.Parse("2018-04-20"),
                Paid        = true,
                PaymentDate = DateTime.Parse("2018-04-20")
            });
            dbUtils.Insert(new DbStatementDto()
            {
                Amount     = 105,
                CategoryId = categoryId,
                Direction  = 0,
                DueDate    = DateTime.Parse("2018-05-15")
            });
            dbUtils.Insert(new DbStatementDto()
            {
                Amount      = 205,
                CategoryId  = categoryId,
                Direction   = 0,
                DueDate     = DateTime.Parse("2018-05-20"),
                Paid        = true,
                PaymentDate = DateTime.Parse("2018-05-20")
            });
            dbUtils.Insert(new DbStatementDto()
            {
                Amount     = 106,
                CategoryId = categoryId,
                Direction  = 0,
                DueDate    = DateTime.Parse("2018-06-15")
            });
            dbUtils.Insert(new DbStatementDto()
            {
                Amount      = 206,
                CategoryId  = categoryId,
                Direction   = 0,
                DueDate     = DateTime.Parse("2018-06-20"),
                Paid        = true,
                PaymentDate = DateTime.Parse("2018-06-20")
            });

            var sut = new StatementRepository(dbUtils.DbContext);

            // Act
            var statementList = await sut.GetList(MonthYear.Create(2018, 5));

            // Assert
            Assert.Equal(3, statementList.Count);
            Assert.Contains(statementList, x => x.Amount == 104);
            Assert.Contains(statementList, x => x.Amount == 105);
            Assert.Contains(statementList, x => x.Amount == 205);
        }
Example #41
0
 public InvestmentVehicleSetupForTests AddNetReturn(
     MonthYear monthYear,
     decimal returnValue)
 {
     return(AddReturn(monthYear, returnValue, FeeType.NetOfFees));
 }