Пример #1
0
        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);
        }
Пример #2
0
        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);
        }
Пример #3
0
 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()));
 }
Пример #4
0
        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());
        }
Пример #6
0
        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);
        }