public void ToUsersPromocodesCanAddFalseTest() { var usersPromocodes = new DbUserPromocodes { UserId = "adcd6b85-e7af-4041-99a0-2ba0209edf90", Promocodes = new List <DbPromocode> { new() { Id = "20469015-0023-4771-9726-cea30e4740ac", CreateDate = "10.10.2020 10:10:10".GetUtcDateTime(), EndDate = "10.10.2021 10:10:10".GetUtcDateTime(), Deleted = false, PromocodeValue = "LKJ" } } }; var options = new DbPromocodeOptions() { EnabledPromocodes = true, CountActivePromocodePerUser = 2, DaysDurationPromocode = 1, CountSymbolsPromocode = 4, TimeLimitAddingInSeconds = 1 }; usersPromocodes.CanAdd(options, DateTime.UtcNow).Should().BeTrue(); }
/// <summary> /// Gets PromocodeOptions from DbPromocodeOptions. /// </summary> /// <param name="dbPromocodeOptions"></param> /// <returns></returns> public static PromocodeOptions ToPromocodeOptions(this DbPromocodeOptions dbPromocodeOptions) => dbPromocodeOptions.IsEmpty() ? null : new PromocodeOptions { EnabledPromocodes = dbPromocodeOptions.EnabledPromocodes, CountActivePromocodePerUser = dbPromocodeOptions.CountActivePromocodePerUser, CountSymbolsPromocode = dbPromocodeOptions.CountSymbolsPromocode, DaysDurationPromocode = dbPromocodeOptions.DaysDurationPromocode, TimeLimitAddingInSeconds = dbPromocodeOptions.TimeLimitAddingInSeconds };
/// <summary> /// Gets true when the DbPromocodeOptions entity or all property is Null otherwise false. /// </summary> /// <param name="dbPromocodeOptions"></param> /// <returns></returns> public static bool IsEmpty(this DbPromocodeOptions dbPromocodeOptions) => dbPromocodeOptions == null || (dbPromocodeOptions.CountSymbolsPromocode == null && dbPromocodeOptions.TimeLimitAddingInSeconds == null && dbPromocodeOptions.CountActivePromocodePerUser == null && dbPromocodeOptions.DaysDurationPromocode == null);
public void ToUsersPromocodesCanAddTest( int?time, int?count, bool deleted, bool expectedValue ) { var usersPromocodes = new DbUserPromocodes { UserId = "adcd6b85-e7af-4041-99a0-2ba0209edf90", Promocodes = new List <DbPromocode> { new() { Id = "20469015-0023-4771-9726-cea30e4740ac", CreateDate = "10.10.2021 10:10:10".GetUtcDateTime(), EndDate = "10.10.2021 10:10:20".GetUtcDateTime(), Deleted = deleted, PromocodeValue = "LKJ" } , new() { Id = "1d168959-0966-4e48-a67a-61131ab5debc", CreateDate = "10.10.2021 10:10:10".GetUtcDateTime(), EndDate = "10.10.2021 10:10:40".GetUtcDateTime(), Deleted = deleted, PromocodeValue = "LKJ" }, new() { Id = "f5b4dd52-0224-4838-8022-75acc8f6dfd7", CreateDate = "10.10.2021 10:10:10".GetUtcDateTime(), EndDate = "10.10.2021 10:12:40".GetUtcDateTime(), Deleted = true, PromocodeValue = "LKJ" }, new() { Id = "8e414090-8243-4dd4-8825-1aab5386203c", CreateDate = "10.10.2021 10:10:10".GetUtcDateTime(), EndDate = "10.10.2021 12:10:40".GetUtcDateTime(), Deleted = false, PromocodeValue = "LKJ" } } }; var options = new DbPromocodeOptions() { EnabledPromocodes = true, CountActivePromocodePerUser = count, DaysDurationPromocode = time, CountSymbolsPromocode = 4, TimeLimitAddingInSeconds = 1 }; var timeNow = "10.10.2021 10:10:35".GetUtcDateTime(); usersPromocodes.CanAdd(options, timeNow).Should().Be(expectedValue); }