buli
2022-05-13 2f4492ee18f90274582fcc2bb06f5e9bf64136e8
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
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
@isTest
private class TSRepairControllerTest {
    public static TS_Repair__c tsr;
    public static TS_Repair__c tsr2;
    public static BusinessActivity__c ba1;
    public static BusinessActivity__c ba2;
    public static BusinessActivity__c ba3;
 
    public static User_FaultInfo__c uf1;
    public static User_FaultInfo__c uf2;
    public static User_FaultInfo__c uf3;
 
    public static FailureAsset__c fa1;
    public static FailureAsset__c fa2;
    public static FailureAsset__c fa3;
 
    public static Contact contact;
 
    public static Account acc1;
    public static Account acc2;
 
    static void basicData() {
 
        tsr = new TS_Repair__c();
        tsr.TSReportDate__c = Date.today();
        insert tsr;    
        tsr2 = new TS_Repair__c();
        tsr2.TSReportDate__c = Date.today();
        tsr2.TSReportStatus__c  = '申请中';
        insert tsr2;
 
        uf1 = new User_FaultInfo__c();
        insert uf1;
        FailureAsset__c fa1 = new FailureAsset__c();
        fa1.model__c = 'test1';
        fa1.FAUserFaultInfo__c = uf1.Id;
        insert fa1;
        ba1 = new BusinessActivity__c();
        ba1.BusinessATS__c = tsr.Id;
        // ba1.BusinessARepairDate__c =  Date.today();
        insert ba1;
 
        uf2 = new User_FaultInfo__c();
        insert uf2;
        fa2 = new FailureAsset__c();
        fa2.model__c = 'test2';
        fa2.FAUserFaultInfo__c = uf2.Id;
        insert fa2;
        ba2 = new BusinessActivity__c();
        ba2.BusinessATS__c = tsr2.Id;
        ba2.User_FaultInfo__c = uf2.Id;
        insert ba2;
 
        User_FaultInfo__c uf3 = new User_FaultInfo__c();
        insert uf3;
        fa3 = new FailureAsset__c();
        fa3.model__c = 'test3';
        fa3.FAUserFaultInfo__c = uf3.Id;
        insert fa3;
        ba3 = new BusinessActivity__c();
        ba3.BusinessATS__c = tsr2.Id;
        ba3.User_FaultInfo__c = uf3.Id;
        insert ba3;
 
        Attachment att = new Attachment(
            Name = 'ORDER-123456.pdf',
            parentId = ba1.Id,
            Body = EncodingUtil.base64Decode('test')
        );
        insert att;
 
        Attachment att2 = new Attachment(
            Name = 'not-ORDER-123456.pdf',
            parentId = ba2.Id,
            Body = EncodingUtil.base64Decode('test')
        );
        insert att2;
 
 
        List<RecordType> rectIE = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = 'Customer IE'];
        acc1 = new Account(
            name = '*',
            RecordTypeId = rectIE[0].Id, 
            OwnerId = UserInfo.getUserId(),
            DivisionName__c = 'Service IE',
            FacilityName__c = 'abc',
            DivisionName_D__c = 'Service IE',
            FacilityNameD__c = 'abc',
            AccountStatus__c = 'Cancel',
            PostCode__c = '123456'
        );
        insert acc1;
 
        acc2 = new Account(
            name = '*',
            RecordTypeId = rectIE[0].Id,
            OwnerId = UserInfo.getUserId(),
            DivisionName__c = 'Service IE2',
            FacilityName__c = 'abc2',
            DivisionName_D__c = 'Service IE2',
            FacilityNameD__c = 'abc2',
            AccountStatus__c = 'Cancel',
            PostCode__c = '123456'
        );
        insert acc2;
        List<Account> selectAccount = [ Select Id,Name from Account];
        contact = new Contact();
        contact = new Contact(email='jplumber@salesforce.com', firstname='Joe',lastname='Plumber',accountid=acc2.id);
        insert contact;
 
    }
    // 保存验证
    static testMethod void saveValidation() {
        basicData();
        ba1.serviceType__c = '硬件修理';
        ba1.BusinessAServiceCategory__c = 'Repair';
        ba1.User_FaultInfo__c = uf1.Id;
        ba1.BusinessADetermineDate__c = Date.today().addDays(-2);
        ba1.BusinessARepairDate__c = Date.today().addDays(-1);
        ba1.BusinessADateRequest__c = Date.today().addDays(-3);
        ba1.BusinessANatureService__c = '有偿';
        ba1.BusinessADateApproval__c = Date.today().addDays(1);
        ba1.BusinessADateQuotation__c = Date.today().addDays(-2);
        ba1.BusinessACompletionDate__c = Date.today().addDays(1);
 
        ba2.serviceType__c = '硬件修理';
        ba2.BusinessAServiceCategory__c = 'Repair';
        ba2.BusinessACustomerUnit__c = 'Test 01';
        ba2.BusinessAAccount__c = acc1.Id;
        ba2.BusinessAContact__c = contact.Id;
        ba2.BusinessANatureService__c = '有偿';
        ba2.BusinessADateApproval__c = null;
        ba2.BusinessADateQuotation__c  = null;
 
        ba3.serviceType__c = '硬件修理';
        ba3.BusinessAServiceCategory__c = 'Repair';
        ba3.BusinessACustomerUnit__c = '';
        // ba3.BusinessAAccount__c = acc1.Id;
        ba3.BusinessAContact__c = contact.Id;
        ba3.BusinessANatureService__c = '无偿';
        ba3.BusinessAWithoutReason__c = '';
        ba3.BusinessADateApproval__c = null;
        ba3.BusinessADateQuotation__c  = null;
 
        PageReference page = new PageReference('/apex/TSRepair?Id='+tsr.Id);
        System.Test.setCurrentPage(page);
        TSRepairController controller = new TSRepairController();
        controller.init(); 
        controller.RepairInfoList[0].ba = ba1;
        controller.RepairInfoList[1].ba = ba2;
        controller.RepairInfoList[2].ba = ba3;
        controller.RepairInfoList[1].ba.BusinessAServiceContentNew__c = 'Test';
        controller.RepairInfoList[1].failureAssetList[0].model__c = 'Test';
        controller.RepairInfoList[1].failureAssetList[1].model__c = 'Test';
        // controller.save();
        controller.baIds = ba3.Id + '/0';
        controller.FindTSRepair();
        controller.checkReportDate();
        controller.uploadingAttachment();
         
        controller.status  = '已批准';
        controller.setStatus();
 
        controller.addFailureAsset();
    }
    // 申请中 验证
    static testMethod void AuthenticationInformationValidation() {
        basicData();
        ba1.serviceType__c = '硬件修理';
        ba1.BusinessAServiceCategory__c = 'Repair';
        ba1.User_FaultInfo__c = uf1.Id;
        ba1.BusinessADetermineDate__c = Date.today().addDays(-2);
        ba1.BusinessARepairDate__c = Date.today().addDays(-1);
        ba1.BusinessADateRequest__c = Date.today().addDays(-3);
        ba1.BusinessANatureService__c = '有偿';
        ba1.BusinessADateApproval__c = Date.today().addDays(1);
        ba1.BusinessADateQuotation__c = Date.today().addDays(-2);
        ba1.BusinessACompletionDate__c = Date.today().addDays(1);
 
        ba2.serviceType__c = '硬件修理';
        ba2.BusinessAServiceCategory__c = 'Repair';
        ba2.BusinessACustomerUnit__c = 'Test 01';
        ba2.BusinessAAccount__c = acc1.Id;
        ba2.BusinessAContact__c = contact.Id;
        ba2.workingHours__c = 11.5;
        ba2.EndTimeHour__c = '20';
        ba2.EndTimeMinute__c = '00';
 
        ba3.serviceType__c = '硬件修理';
        ba3.BusinessAServiceCategory__c = 'Repair';
        ba3.BusinessACustomerUnit__c = '';
        ba3.BusinessAContact__c = contact.Id;
 
        PageReference page = new PageReference('/apex/TSRepair?Id='+tsr.Id);
        System.Test.setCurrentPage(page);
        TSRepairController controller = new TSRepairController();
        controller.init(); 
        controller.RepairInfoList[0].ba = ba1;
        controller.RepairInfoList[1].ba = ba2;
        controller.RepairInfoList[1].ba = ba3;
        controller.RepairInfoList[0].failureAssetList[0].model__c = 'Test';
        controller.RepairInfoList[0].failureAssetList[1].model__c = 'Test';
 
        controller.RepairInfoList[1].ba = ba2;
        controller.save();         
        controller.status  = '申请中';
        controller.setStatus();
 
        controller.addFailureAsset();
    }
    // 申请中
    static testMethod void save() {
        basicData();
        tsr2.TSReportStatus__c  = '申请中';
        // update tsr2;
        // 
        System.Test.startTest();
        BusinessActivity__c ba4 = new BusinessActivity__c();
        ba4.serviceType__c = '硬件修理';
        ba4.BusinessAServiceCategory__c = 'Repair';
        ba4.User_FaultInfo__c = uf1.Id;
        ba4.BusinessADetermineDate__c = Date.today().addDays(-1);
        ba4.BusinessARepairDate__c = Date.today().addDays(-1);
        ba4.BusinessANatureService__c = '有偿';
        ba4.BusinessACustomerUnit__c = 'abc2Service IE2';
        ba4.BusinessAAccount__c = acc2.Id;
        ba4.BusinessAContact__c = contact.Id;
        ba4.BusinessAHaveAttachment__c = true;
        ba4.firstInput__c = '否';
        ba4.workingHours__c = 10;
        insert ba4;
        BusinessActivity__c ba6 = new BusinessActivity__c();
        ba6.serviceType__c = '硬件修理';
        ba6.BusinessAServiceCategory__c = 'Repair';
        ba6.User_FaultInfo__c = uf1.Id;
        ba6.BusinessADetermineDate__c = Date.today().addDays(-1);
        ba6.BusinessARepairDate__c = Date.today().addDays(-1);
        ba6.BusinessANatureService__c = '有偿';
        ba6.BusinessACustomerUnit__c = 'abc2Service IE2';
        ba6.BusinessAAccount__c = acc2.Id;
        ba6.BusinessAContact__c = contact.Id;
        ba6.BusinessAHaveAttachment__c = true;
        ba6.firstInput__c = '是';
        ba6.workingHours__c = 10;
        insert ba6;
        PageReference page = new PageReference('/apex/TSRepair?Id='+tsr2.Id);
        System.Test.setCurrentPage(page);
        TSRepairController controller = new TSRepairController();
        controller.init(); 
        controller.status = '申请中';
        FailureAsset__c fa4 = new FailureAsset__c();
        fa4.model__c = 'test3';
        fa4.FAActivity__c = ba4.Id;
        insert fa4;
        controller.RepairInfoList[0].failureAssetList[0] = fa4;
        controller.RepairInfoList[0].ba = ba4;
        controller.save();
        System.Test.StopTest();
        controller.baIds = '/0';
        controller.FindTSRepair();
        controller.checkReportDate();
        controller.uploadingAttachment();
 
        controller.status  = '草案中';
        // controller.save();
        controller.setStatus();
    }
    // 草案中 / 驳回
    static testMethod void save1() {
        basicData();
        tsr2.TSReportStatus__c  = '申请中';
 
        BusinessActivity__c ba4 = new BusinessActivity__c();
        ba4.serviceType__c = '硬件修理';
        ba4.BusinessAServiceCategory__c = 'Repair';
        ba4.User_FaultInfo__c = uf1.Id;
        ba4.BusinessADetermineDate__c = Date.today().addDays(-1);
        ba4.BusinessARepairDate__c = Date.today().addDays(-1);
        ba4.BusinessANatureService__c = '有偿';
        ba4.BusinessACustomerUnit__c = 'abc2Service IE2';
        ba4.BusinessAAccount__c = acc2.Id;
        ba4.BusinessAContact__c = contact.Id;
        ba4.firstInput__c = '否';
        ba4.BusinessAHaveAttachment__c = true;
        ba4.workingHours__c = 10;
        TS_Repair__c tsr3 = new TS_Repair__c();
        PageReference page = new PageReference('/apex/TSRepair?Id='+tsr2.Id);
        System.Test.setCurrentPage(page);
        TSRepairController controller = new TSRepairController();
        controller.init(); 
        controller.status = '草案中';
        controller.RepairInfoList[0].ba = ba4;
        controller.lineno = '1';
        controller.fromUserFaultInfoId = uf1.Id;
        controller.initBusinessActivity();
        controller.save();
        controller.initPagePrompt('1');
        controller.initPagePrompt('2');
        controller.initPagePrompt('Submit');
        controller.initPagePrompt('Draft');
        controller.initPagePrompt('Approval');
        controller.initPagePrompt('Rejected');
        controller.ServiceContentNewAssembled('Test');
        controller.TSRepairAssembled(tsr3);
        page = new PageReference('/apex/TSRepair?Id='+tsr2.Id);
        System.Test.setCurrentPage(page);
        controller = new TSRepairController(new ApexPages.StandardController(tsr2));
        controller.init();
    }
    // 用户点击 新建TS日报按钮创建TS日报
    static testMethod void testMethod3() {
        basicData();
        PageReference page = new PageReference('/apex/TSRepair?Id=');
        System.Test.setCurrentPage(page);
        TSRepairController controller = new TSRepairController();
        controller.init(); 
        controller.FindTSRepair();
        controller.checkReportDate();
        controller.status  = '已批准';
        controller.setStatus();
 
        controller.addFailureAsset();
    }
 
 
}