public async Task WhenCreatorPercentageIsSetWithExpiredExpiry_ItShouldReturnTheCreatorPercentageWithNumberOfWeeks1() { var paymentProcessingStartDateInclusive = PaymentProcessingUtilities.GetPaymentProcessingStartDate(Now); var creatorPercentageOverride = new CreatorPercentageOverrideData(0.9m, paymentProcessingStartDateInclusive.AddDays(7).AddTicks(-1)); this.getAccountSettings.Setup(v => v.ExecuteAsync(UserId, FreePostTimestamp, PostConstants.MaximumFreePostsPerInterval)) .ReturnsAsync(new GetAccountSettingsDbResult( Username, Email, null, AccountBalance, PaymentStatus, HasPaymentInformation, creatorPercentageOverride, FreePostsRemaining)) .Verifiable(); var result = await this.target.HandleAsync(new GetAccountSettingsQuery(Requester, UserId, Now)); this.getAccountSettings.Verify(); var expectedResult = new GetAccountSettingsResult( Username, Email, null, AccountBalance, PaymentStatus, HasPaymentInformation, Payments.Constants.DefaultCreatorPercentage, null, FreePostsRemaining); Assert.AreEqual(expectedResult, result); }
internal static int?GetWeeksRemaining(DateTime?expiryDate, DateTime now) { if (expiryDate == null) { return(null); } var expiryDateWeekStartDateInclusive = PaymentProcessingUtilities.GetPaymentProcessingStartDate(expiryDate.Value); var finalWeekEndDateInclusive = expiryDateWeekStartDateInclusive.AddTicks(-1); return((int)((finalWeekEndDateInclusive - now).TotalDays / 7)); }
internal static CreatorPercentageOverrideData GetCreatorPercentage(CreatorPercentageOverrideData creatorPercentageOverride, DateTime now) { var paymentProcessingStartDateInclusive = PaymentProcessingUtilities.GetPaymentProcessingStartDate(now); var paymentProcessingEndDateExclusive = paymentProcessingStartDateInclusive.AddDays(7); var creatorPercentageOverrideResult = PaymentProcessingUtilities.GetCreatorPercentageOverride( creatorPercentageOverride, paymentProcessingEndDateExclusive); return(creatorPercentageOverrideResult ?? new CreatorPercentageOverrideData( Fifthweek.Payments.Constants.DefaultCreatorPercentage, null)); }