private static void CreateDefaultRules(RulesServiceClient sut) { if (sut.GetRules().None(r => (r.Category == RuleCategory.WarningRule) && (r.Type == RuleType.Default))) { // Default rate does not exist for this company sut.CreateRule(new Rule { Type = RuleType.Default, Category = RuleCategory.WarningRule, AppliesToCurrentBooking = true, AppliesToFutureBooking = true, Id = Guid.NewGuid(), IsActive = false, Message = "Due to the current volume of calls, please note that pickup may be delayed.", ActiveFrom = DateTime.Now.AddHours(-1), ActiveTo = DateTime.Now.AddHours(1) }); } if (sut.GetRules().None(r => (r.Category == (int)RuleCategory.DisableRule) && (r.Type == (int)RuleType.Default))) { // Default rate does not exist for this company sut.CreateRule(new Rule { Type = RuleType.Default, Category = RuleCategory.DisableRule, AppliesToCurrentBooking = true, AppliesToFutureBooking = true, Id = Guid.NewGuid(), Message = "Service is temporarily unavailable. Please call dispatch center for service.", }); } }
private Rule CreateRule(Action <Rule> update) { var ruleId = Guid.NewGuid(); var name = "TestRule" + Guid.NewGuid(); var mess = "TestRule Message" + Guid.NewGuid(); var rules = new RulesServiceClient(BaseUrl, SessionId, new DummyPackageInfo(), null); var newRule = new Rule { Id = ruleId, Name = name, Type = RuleType.Recurring, Category = RuleCategory.WarningRule, AppliesToCurrentBooking = true, AppliesToFutureBooking = true, Priority = 23, IsActive = true, Message = mess, }; if (update != null) { update(newRule); } rules.CreateRule(newRule); return(newRule); }
public async void TestRecurrencyRuleIsApplied_with_start_and_end_time_on_different_day() { var ruleId = Guid.NewGuid(); var activeFromDateRef = DateTime.Now; var name = "ReccurencyRuleTest" + Guid.NewGuid(); var mess = "ReccurencyRuleTestMessage"; var dayOfTheWeek = 1 << (int)DateTime.Now.DayOfWeek; var rules = new RulesServiceClient(BaseUrl, SessionId, new DummyPackageInfo(), null); rules.CreateRule(new Rule { Id = ruleId, Name = name, Type = RuleType.Recurring, Category = RuleCategory.WarningRule, AppliesToCurrentBooking = true, AppliesToFutureBooking = true, ActiveFrom = activeFromDateRef.AddHours(-1), ActiveTo = activeFromDateRef.AddHours(1), DaysOfTheWeek = (DayOfTheWeek)dayOfTheWeek, StartTime = activeFromDateRef.AddHours(-1), EndTime = activeFromDateRef.AddHours(22), Priority = 23, IsActive = true, Message = "ReccurencyRuleTestMessage", ZoneList = " " }); var sut = new OrderServiceClient(BaseUrl, SessionId, new DummyPackageInfo(), null, null); var order = new CreateOrderRequest { Id = Guid.NewGuid(), PickupAddress = TestAddresses.GetAddress1(), PickupDate = DateTime.Now, DropOffAddress = TestAddresses.GetAddress2(), Settings = new BookingSettings { ChargeTypeId = ChargeTypes.PaymentInCar.Id, VehicleTypeId = 1, ProviderId = 13, Phone = "5145551212", Passengers = 6, NumberOfTaxi = 1, Name = "Joe Smith" }, }; var validation = await sut.ValidateOrder(order); Assert.IsTrue(validation.HasWarning); Assert.AreEqual(mess, validation.Message); }
public void AddRule() { var ruleId = Guid.NewGuid(); var activeFromDateRef = DateTime.Today.AddDays(14); var name = "AddRuleTest" + Guid.NewGuid(); var sut = new RulesServiceClient(BaseUrl, SessionId, new DummyPackageInfo(), null); sut.CreateRule(new Rule { Id = ruleId, Name = name, Type = RuleType.Recurring, Category = RuleCategory.WarningRule, AppliesToCurrentBooking = true, AppliesToFutureBooking = true, ActiveFrom = activeFromDateRef, ActiveTo = activeFromDateRef.AddMonths(2), DaysOfTheWeek = DayOfTheWeek.Saturday | DayOfTheWeek.Sunday, StartTime = new DateTime(2000, 1, 1, 22, 11, 10), EndTime = new DateTime(2000, 1, 1, 23, 22, 11), Priority = 10, IsActive = true, Message = "DisableRuleMessage" }); var rules = sut.GetRules(); Assert.AreEqual(1, rules.Count(x => x.Id == ruleId)); var rule = rules.Single(x => x.Id == ruleId); Assert.AreEqual(name, rule.Name); Assert.AreEqual(RuleCategory.WarningRule, rule.Category); Assert.AreEqual(RuleType.Recurring, rule.Type); Assert.AreEqual(true, rule.AppliesToFutureBooking); Assert.AreEqual(true, rule.AppliesToCurrentBooking); Assert.AreEqual(true, rule.IsActive); Assert.AreEqual(activeFromDateRef, rule.ActiveFrom); Assert.AreEqual(activeFromDateRef.AddMonths(2), rule.ActiveTo); Assert.AreEqual(DayOfTheWeek.Saturday | DayOfTheWeek.Sunday, rule.DaysOfTheWeek); Assert.AreEqual(new DateTime(2000, 1, 1, 22, 11, 10), rule.StartTime); Assert.AreEqual(new DateTime(2000, 1, 1, 23, 22, 11), rule.EndTime); Assert.AreEqual(10, rule.Priority); Assert.AreEqual("DisableRuleMessage", rule.Message); }
public override void Setup() { base.Setup(); CreateAndAuthenticateTestAdminAccount().Wait(); var sut = new RulesServiceClient(BaseUrl, SessionId, new DummyPackageInfo(), null); DeleteAllRules(sut); sut.CreateRule(new Rule { Id = (_knownRuleId = Guid.NewGuid()), Type = RuleType.Recurring, Category = RuleCategory.DisableRule, DaysOfTheWeek = DayOfTheWeek.Sunday, StartTime = DateTime.MinValue.AddHours(2), EndTime = DateTime.MinValue.AddHours(3), ActiveFrom = DateTime.Now.AddDays(1), ActiveTo = DateTime.Now.AddDays(2), IsActive = true, Name = "Rate " + Guid.NewGuid(), Message = "Due to...", Priority = new Random().Next() }); }