Example #1
0
        public async void Testhour()
        {
            var now  = PlanItem.NowTime() + minute2ms;
            var item = new PlanItem
            {
                Message = MessageHelper.Simple("test", "test", "test", "test"),
                Option  = new PlanOption
                {
                    plan_type  = plan_date_type.hour,
                    plan_value = 1,
                    plan_time  = now
                },
                RealInfo = new PlanRealInfo
                {
                    plan_time = now
                }
            };
            await item.CheckNextTime();

            now += hour2ms;
            var next = PlanItem.FromTime(item.RealInfo.plan_time);

            Console.WriteLine($"{now}=>{item.RealInfo.plan_time} {next} : {item.RealInfo.plan_state}");
            Assert.IsTrue(item.RealInfo.plan_time == now, $"结果时间不同{now}=>{item.RealInfo.plan_time}");

            item.RealInfo.exec_num = 1;
            await item.CheckNextTime();

            Assert.IsTrue(item.RealInfo.plan_state == Plan_message_state.close, $"状态错误{Plan_message_state.close}=>{item.RealInfo.plan_state}");
        }
Example #2
0
        public async void TestRepet()
        {
            var now  = PlanItem.NowTime() + second2ms;
            var item = new PlanItem
            {
                Message = MessageHelper.Simple("test", "test", "test", "test"),
                Option  = new PlanOption
                {
                    plan_type  = plan_date_type.second,
                    plan_value = 1,
                    plan_repet = 30,
                    plan_time  = now
                },
                RealInfo = new PlanRealInfo
                {
                    plan_time = now
                }
            };

            for (int i = 0; i < 30; i++)
            {
                await item.CheckNextTime();

                var next = PlanItem.FromTime(item.RealInfo.plan_time);
                item.RealInfo.exec_num++;//模拟成功
                now += second2ms;
                Console.WriteLine($"{PlanItem.FromTime(now)} => {next} : {item.RealInfo.plan_state}");
                Assert.IsTrue(item.RealInfo.plan_state == Plan_message_state.queue, $"状态错误{Plan_message_state.queue}=>{item.RealInfo.plan_state}");
                Assert.IsTrue(item.RealInfo.plan_time == now, $"结果时间不同{now}=>{item.RealInfo.plan_time}");
            }
            await item.CheckNextTime();

            Console.WriteLine($"{PlanItem.FromTime(now)} => {PlanItem.FromTime(item.RealInfo.plan_time)} : {item.RealInfo.plan_state}");
            Assert.IsTrue(item.RealInfo.plan_state == Plan_message_state.close, $"状态错误{Plan_message_state.close}=>{item.RealInfo.plan_state}");
        }
Example #3
0
        public async void Testweek()
        {
            var week = new Random(GetHashCode()).Next(0, 7);
            var item = new PlanItem
            {
                Message = MessageHelper.Simple("test", "test", "test", "test"),
                Option  = new PlanOption
                {
                    plan_type  = plan_date_type.week,
                    plan_value = (short)week,
                    plan_time  = 1000
                },
                RealInfo = new PlanRealInfo
                {
                    plan_time = 0
                }
            };
            await item.FirstSave();

            await item.CheckNextTime();

            var next = PlanItem.FromTime(item.RealInfo.plan_time);

            Console.WriteLine($"{(DayOfWeek)week}=>{next.DayOfWeek} {next} : {item.RealInfo.plan_state}");
            Assert.IsTrue((int)next.DayOfWeek == week, $"结果时间不同{week}=>{(int)next.DayOfWeek}");

            item.RealInfo.exec_num = 1;
            await item.CheckNextTime();

            Assert.IsTrue(item.RealInfo.plan_state == Plan_message_state.close, $"状态错误{Plan_message_state.close}=>{item.RealInfo.plan_state}");
        }
Example #4
0
        public async void TestMonth()
        {
            var day  = (short)new Random(GetHashCode()).Next(0, 32);
            var item = new PlanItem
            {
                Message = MessageHelper.Simple("test", "test", "test", "test"),
                Option  = new PlanOption
                {
                    plan_type  = plan_date_type.month,
                    plan_value = day,
                    plan_time  = 10000
                },
                RealInfo = new PlanRealInfo
                {
                    plan_time = PlanItem.NowTime()
                }
            };
            await item.CheckNextTime();

            var next = PlanItem.FromTime(item.RealInfo.plan_time);

            Console.WriteLine($"{day}=>{(int)next.DayOfWeek} {next} : {item.RealInfo.plan_state}");
            Assert.IsTrue(next.Day == day, $"结果时间不同{day}=>{next.Day}");

            item = new PlanItem
            {
                Message = MessageHelper.Simple("test", "test", "test", "test"),
                Option  = new PlanOption
                {
                    plan_type  = plan_date_type.month,
                    plan_value = -31,
                    plan_time  = 10000
                },
                RealInfo = new PlanRealInfo
                {
                    plan_time = PlanItem.NowTime()
                }
            };
            await item.CheckNextTime();

            next = PlanItem.FromTime(item.RealInfo.plan_time);
            Console.WriteLine($"{next} : {item.RealInfo.plan_state}");
            Assert.IsTrue(next.Day == 1, $"结果时间不同{next.Day}=>1");

            item.RealInfo.exec_num = 1;
            await item.CheckNextTime();

            Assert.IsTrue(item.RealInfo.plan_state == Plan_message_state.close, $"状态错误{Plan_message_state.close}=>{item.RealInfo.plan_state}");
        }
Example #5
0
        public async void TestAlwaysSkip()
        {
            var now  = PlanItem.NowTime() + second2ms;
            var item = new PlanItem
            {
                Message = MessageHelper.Simple("test", "test", "test", "test"),
                Option  = new PlanOption
                {
                    plan_type  = plan_date_type.second,
                    plan_value = 1,
                    plan_repet = -1,
                    plan_time  = now,
                    skip_set   = 29,
                },
                RealInfo = new PlanRealInfo
                {
                    plan_time = now
                }
            };
            DateTime next;

            for (int i = 0; i < 29; i++)
            {
                await item.CheckNextTime();

                item.RealInfo.skip_num++;//模拟成功

                now += second2ms;
                next = PlanItem.FromTime(item.RealInfo.plan_time);
                Console.WriteLine($"{PlanItem.FromTime(now)} => {next} : {item.RealInfo.plan_state} skip:{item.RealInfo.skip_num} exec:{item.RealInfo.exec_num}");
                Assert.IsTrue(item.RealInfo.plan_state == Plan_message_state.skip, $"状态错误{Plan_message_state.queue}=>{item.RealInfo.plan_state}");
                Assert.IsTrue(item.RealInfo.plan_time == now, $"结果时间不同{now}=>{item.RealInfo.plan_time}");
            }

            for (int i = 0; i < 29; i++)
            {
                await item.CheckNextTime();

                item.RealInfo.exec_num++;//模拟成功

                now += second2ms;
                next = PlanItem.FromTime(item.RealInfo.plan_time);
                Console.WriteLine($"{PlanItem.FromTime(now)} => {next} : {item.RealInfo.plan_state} skip:{item.RealInfo.skip_num} exec:{item.RealInfo.exec_num}");
                Assert.IsTrue(item.RealInfo.plan_state == Plan_message_state.queue, $"状态错误{Plan_message_state.queue}=>{item.RealInfo.plan_state}");
                Assert.IsTrue(item.RealInfo.plan_time == now, $"结果时间不同{now}=>{item.RealInfo.plan_time}");
            }
        }