public async Task CreateScheduleTest() { var commandState = HueRequestBuilder.Modify.Light(7).TurnOn().Build(); var newSchedule = new GetScheduleResponse { AutoDelete = true, Name = "new Timer", Description = "testing that scheduling", Timing = ScheduleTiming.CreateNew(ScheduleTimingTypes.Alarm), Command = new Command(commandState), Status = ScheduleStatus.Enabled }; newSchedule.Timing.BaseDate = DateTime.Now.AddDays(1); IHueRequest request = new CreateScheduleRequest { NewSchedule = newSchedule }; var response = await _client.GetResponseAsync(request); Assert.True(response is SuccessResponse); OnLog(response); Assert.True(newSchedule.Id > 0); await DeleteTemporarySchedule(newSchedule.Id); }
private List <string> MapScheduleDays(ScheduleTiming scheduleTiming) { var scheduleDays = new List <string>(); if (scheduleTiming.MondayFlag) { scheduleDays.Add(Enum.GetName(typeof(ScheduleDays), ScheduleDays.Monday)); } if (scheduleTiming.TuesdayFlag) { scheduleDays.Add(Enum.GetName(typeof(ScheduleDays), ScheduleDays.Tuesday)); } if (scheduleTiming.WednesdayFlag) { scheduleDays.Add(Enum.GetName(typeof(ScheduleDays), ScheduleDays.Wednesday)); } if (scheduleTiming.ThursdayFlag) { scheduleDays.Add(Enum.GetName(typeof(ScheduleDays), ScheduleDays.Thursday)); } if (scheduleTiming.FridayFlag) { scheduleDays.Add(Enum.GetName(typeof(ScheduleDays), ScheduleDays.Friday)); } if (scheduleTiming.SaturdayFlag) { scheduleDays.Add(Enum.GetName(typeof(ScheduleDays), ScheduleDays.Saturday)); } if (scheduleTiming.SundayFlag) { scheduleDays.Add(Enum.GetName(typeof(ScheduleDays), ScheduleDays.Sunday)); } return(scheduleDays); }
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { if (reader.ValueType == typeof(DateTime)) { return(ScheduleTiming.Create(((DateTime)reader.Value).ToString("s"))); } return(ScheduleTiming.Create(reader.Value.ToString())); }
public void CreateScheduleTimingTest(string serializedTimer, DateTime expectedDateTime, TimeSpan expectedRandomOffset, int expectedLoops, int expectedType, int expectedWeekdays) { var result = ScheduleTiming.Create(serializedTimer); Assert.Equal(result.BaseDate, expectedDateTime); Assert.Equal(result.RandomizedOffSet, expectedRandomOffset); Assert.Equal(result.Loops, expectedLoops); Assert.Equal((int)result.Type, expectedType); Assert.Equal((int)result.Weekdays, expectedWeekdays); Assert.Equal(serializedTimer, result.ToJson()); }
/// <summary> /// Mock Schedule request /// </summary> /// <returns></returns> private IEnumerable <ScheduleTiming> FakeData() { ScheduleTiming s = new ScheduleTiming(); s.FacilityKey = Guid.Parse("BEC05D78-2F6C-4034-8FB9-ACE3417F83E8"); s.EndMinutes = 825; s.ScheduleTimingKey = Guid.Parse("BEC05D78-2F6C-4034-8FB9-ACE3417F83E8"); s.ScheduleTimingName = "test"; s.StartMinutes = 885; s.FridayFlag = true; s.MondayFlag = true; s.SaturdayFlag = true; s.SundayFlag = true; s.ThursdayFlag = true; s.TuesdayFlag = false; s.WednesdayFlag = false; List <ScheduleTiming> sc = new List <ScheduleTiming>(); sc.Add(s); return(sc.AsEnumerable()); }
private async Task <int> CreateTemporarySchedule() { var request = new CreateScheduleRequest(); var commandState = HueRequestBuilder.Modify.Light(7).TurnOn().Build(); var newSchedule = new GetScheduleResponse { AutoDelete = true, Name = "temporary schedule", Description = "temporary schedule description", Timing = ScheduleTiming.CreateNew(ScheduleTimingTypes.Alarm), Command = new Command(commandState), Status = ScheduleStatus.Enabled }; newSchedule.Timing.BaseDate = DateTime.Now.AddDays(1); request.NewSchedule = newSchedule; var response = await _client.GetResponseAsync(request); Assert.True(response is SuccessResponse, "response is SuccessResponse"); OnLog(response); Assert.True(newSchedule.Id > 0, "new ID set"); return(newSchedule.Id); }
public void UpdateRoutingRule_ValidArgument_ShouldUpdateRoutingRule() { //Arrange var mockFacilityGuid = Utility.ParseStringToGuid(_executionContextAccessor.Current.Facility.FacilityKey); var mockRoutingRuleGuid1 = Utility.GetNewGuid(); var mockRoutingRuleName1 = "test"; var mockRoutingRuleGuid2 = Utility.GetNewGuid(); var mockRoutingRuleName2 = "test new"; var mockScheduleGuid1 = Utility.GetNewGuid(); var mockScheduleGuid2 = Utility.GetNewGuid(); Dictionary <string, string> headers = new Dictionary <string, string>(); var fakeSchedule1 = new ScheduleTiming { ScheduleTimingKey = mockScheduleGuid1, ScheduleTimingName = "Test Schedule" }; var fakeSchedule2 = new ScheduleTiming { ScheduleTimingKey = mockScheduleGuid2, ScheduleTimingName = "Test Schedule 2" }; var fakeRoutingRuleSchedule = new RoutingRuleScheduleTiming { RoutingRuleScheduleTimingKey = Utility.GetNewGuid(), TenantKey = Utility.ParseStringToGuid(_executionContextAccessor.Current.Tenant.TenantKey), ScheduleTimingKey = mockScheduleGuid1, RoutingRuleKey = mockRoutingRuleGuid2, }; var fakeCollectionRoutingRuleSchedule = new List <RoutingRuleScheduleTiming>(); fakeCollectionRoutingRuleSchedule.Add(fakeRoutingRuleSchedule); var fakeRoutingRule1 = Task.FromResult <RoutingRule>(new RoutingRule { RoutingRuleKey = mockRoutingRuleGuid1, RoutingRuleName = mockRoutingRuleName1, FacilityKey = mockFacilityGuid, TenantKey = Utility.ParseStringToGuid(_executionContextAccessor.Current.Tenant.TenantKey), }); var fakeRoutingRule2 = Task.FromResult <RoutingRule>(new RoutingRule { RoutingRuleKey = mockRoutingRuleGuid2, RoutingRuleName = mockRoutingRuleName2, FacilityKey = mockFacilityGuid, TenantKey = Utility.ParseStringToGuid(_executionContextAccessor.Current.Tenant.TenantKey), RoutingRuleScheduleTiming = fakeCollectionRoutingRuleSchedule }); var fakeRountingSchedule = new RequestRoutingRuleSchedule { ScheduleKey = mockScheduleGuid2 }; var routingRuleScheduleList = new List <RequestRoutingRuleSchedule>(); routingRuleScheduleList.Add(fakeRountingSchedule); var routingRuleReq = new RoutingRuleRequest { RoutingRuleName = mockRoutingRuleName2, SearchCriteriaGranularityLevel = 1, ActorKey = Guid.Parse("6DD7B978-2BAE-4C0B-9ED2-0A79FB689A46"), RoutingRuleSchedules = routingRuleScheduleList, }; _mockRoutingRuleRepository.Setup(x => x.GetRoutingRule(mockRoutingRuleName1, mockFacilityGuid)).Returns(fakeRoutingRule1); _mockRoutingRuleRepository.Setup(x => x.GetRoutingRule(mockRoutingRuleGuid2, mockFacilityGuid)).Returns(fakeRoutingRule2); //Act var response = _routingRuleManager.UpdateRoutingRule(routingRuleReq, mockRoutingRuleGuid2, headers); //Assert Assert.Contains("Routing Rule Updated Successfully", response.Message); Assert.True(response.IsSuccess); }
public void UpdateRoutingRule_RequiredParameterMissing_ShouldReturnError() { //Arrange var mockFacilityGuid = Utility.ParseStringToGuid(_executionContextAccessor.Current.Facility.FacilityKey); var mockRoutingRuleGuid1 = Utility.GetNewGuid(); var mockRoutingRuleName1 = "test"; var mockRoutingRuleGuid2 = Utility.GetNewGuid(); var mockRoutingRuleName2 = "test new"; var mockScheduleGuid1 = Utility.GetNewGuid(); var mockScheduleGuid2 = Utility.GetNewGuid(); Dictionary <string, string> headers = new Dictionary <string, string>(); var fakeRoutingRule1 = Task.FromResult <RoutingRule>(new RoutingRule { RoutingRuleKey = mockRoutingRuleGuid1, RoutingRuleName = mockRoutingRuleName1, FacilityKey = mockFacilityGuid, TenantKey = Utility.ParseStringToGuid(_executionContextAccessor.Current.Tenant.TenantKey), }); var fakeRoutingRule2 = Task.FromResult <RoutingRule>(new RoutingRule { RoutingRuleKey = mockRoutingRuleGuid2, RoutingRuleName = mockRoutingRuleName2, FacilityKey = mockFacilityGuid, TenantKey = Utility.ParseStringToGuid(_executionContextAccessor.Current.Tenant.TenantKey), }); var fakeSchedule1 = new ScheduleTiming { ScheduleTimingKey = mockScheduleGuid1, ScheduleTimingName = "Test Schedule" }; var fakeSchedule2 = new ScheduleTiming { ScheduleTimingKey = mockScheduleGuid2, ScheduleTimingName = "Test Schedule 2" }; var fakeRoutingRuleSchedule = new RoutingRuleScheduleTiming { RoutingRuleScheduleTimingKey = Utility.GetNewGuid(), TenantKey = Utility.ParseStringToGuid(_executionContextAccessor.Current.Tenant.TenantKey), ScheduleTimingKey = mockScheduleGuid1, RoutingRuleKey = mockRoutingRuleGuid2, }; var routingRuleReq = new RoutingRuleRequest { RoutingRuleName = mockRoutingRuleName2, SearchCriteriaGranularityLevel = 1, ActorKey = Guid.Parse("6DD7B978-2BAE-4C0B-9ED2-0A79FB689A46") }; _mockRoutingRuleRepository.Setup(x => x.GetRoutingRule(mockRoutingRuleName1, mockFacilityGuid)).Returns(fakeRoutingRule1); _mockRoutingRuleRepository.Setup(x => x.GetRoutingRule(mockRoutingRuleGuid2, mockFacilityGuid)).Returns(fakeRoutingRule2); //Act var response = _routingRuleManager.UpdateRoutingRule(routingRuleReq, mockRoutingRuleGuid2, headers); //Assert Assert.Contains("Please select any schedule or destination or transaction priority.", response.Message); Assert.False(response.IsSuccess); }