高章伟
2022-02-18 8b5f4c6c281cfa548f92de52c8021e37aa81901e
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
@isTest
private class addInitTaskBatchTest {
    @TestSetup
    public static void setup(){
        OlympusCalendar__c oc = new OlympusCalendar__c();
        oc.Date__c = System.Today();
        oc.Before_1_WorkDay__c = oc.Date__c.addDays(-1);
        insert oc;
 
        Daily_Report__c dr1 = new Daily_Report__c();
        dr1.Reporter__c = UserInfo.getUserId();
        dr1.Reported_Date__c = date.today().addDays(-2);
        dr1.Status__c = '申請中';
        Daily_Report__c dr2 = new Daily_Report__c();
        dr2.Reporter__c = UserInfo.getUserId();
        dr2.Reported_Date__c = date.today().addDays(2);
        dr2.Status__c = '申請中';
        Daily_Report__c dr3 = new Daily_Report__c();
        dr3.Reporter__c = UserInfo.getUserId();
        dr3.Reported_Date__c = date.today().addDays(4);
        dr3.Status__c = '申請中';
        insert new list<Daily_Report__c>{dr1,dr2,dr3};
 
        Event__c event = new Event__c();
        event.ActivityDate__c = date.today().addDays(-2);
        event.Daily_Report__c = dr1.Id;
        event.StartDateTime__c = Datetime.newInstance(2021, 8, 17, 10, 0, 0);
        event.EndDateTime__c = Datetime.newInstance(2021, 8, 17, 17, 0, 0);
 
        Event__c event2 = new Event__c();
        event2.ActivityDate__c = date.today().addDays(-2);
        event2.Daily_Report__c = dr1.Id;
        event2.StartDateTime__c = Datetime.newInstance(2021, 8, 17, 10, 0, 0);
        event2.EndDateTime__c = Datetime.newInstance(2021, 8, 17, 17, 0, 0);
 
        Event__c event3 = new Event__c();
        event3.ActivityDate__c = date.today().addDays(-2);
        event3.Daily_Report__c = dr2.Id;
        event3.StartDateTime__c = Datetime.newInstance(2021, 8, 17, 10, 0, 0);
        event3.EndDateTime__c = Datetime.newInstance(2021, 8, 17, 17, 0, 0);
 
        Event__c event4 = new Event__c();
        event4.ActivityDate__c = date.today().addDays(-2);
        event4.Daily_Report__c = dr3.Id;
        event4.StartDateTime__c = Datetime.newInstance(2021, 8, 20, 10, 0, 0);
        event4.EndDateTime__c = Datetime.newInstance(2021, 8, 21, 17, 0, 0);
        insert new list<Event__c>{event,event2,event3,event4};
 
        List<task__c> tasks = new List<task__c>();
        task__c t1 = new task__c();
        t1.Name = 'test1';
        t1.taskDifferent__c = '主动任务';
        t1.taskStatus__c = '02 接受';
        t1.assignee__c = Userinfo.getUserId();
        t1.Event__c = event.Id;
        t1.Daily_Report__c = dr1.Id;
        t1.Activity_Date__c = Date.newInstance(2021, 7, 17);
        tasks.add(t1);
 
        task__c t2 = new task__c();
        t2.Name = 'test2';
        t2.taskDifferent__c = '主动任务';
        t2.taskStatus__c = '02 接受';
        t2.assignee__c = Userinfo.getUserId();
        t2.Event__c = event2.Id;
        t2.Daily_Report__c = dr2.Id;
        t2.Activity_Date__c = Date.newInstance(2021, 8, 17);
        tasks.add(t2);
 
        task__c t3 = new task__c();
        t3.Name = 'test3';
        t3.taskDifferent__c = '主动任务';
        t3.taskStatus__c = '02 接受';
        t3.assignee__c = Userinfo.getUserId();
        t3.Daily_Report__c = dr3.Id;
        t3.Event__c = event4.Id;
        t3.Activity_Date__c = Date.newInstance(2021, 8, 20);
        tasks.add(t3);
        insert tasks;
 
        t1.delayTask__c = t2.id;
        t2.delayTask__c = t3.id;
        t2.delayTaskP__c = t1.id;
        t3.delayTaskP__c = t2.id;
        update new list<task__c> {t1,t2,t3};
    }
 
    @isTest
    public static void testMethod1() {
        list<task__c> tlist = 
            [SELECT Id,Name,delayTask__c, Daily_Report__c , Event__c 
                FROM task__c
                where name = 'test2'];
        Test.StartTest();
        Database.executeBatch( new addInitTaskBatch(tlist[0].id),1);
        Test.stopTest();
 
    }
 
    @isTest
    public static void testMethod2() {
        list<task__c> tlist = 
            [SELECT Id,Name,delayTask__c, Daily_Report__c , Event__c ,delayTaskP__c
                FROM task__c
                where name = 'test2'];
        addInitTaskBatch controller = new addInitTaskBatch();
        controller.main( tlist);
        Test.StartTest();
        Database.executeBatch( new modifyInitTaskBatch(tlist[0].id),1);
        Test.stopTest();
 
    }
}