高章伟
2022-02-24 2aa8da8af66aa8ae00f25831aed6bb0364176e7b
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
@isTest
private class Send_Have_Arrival_wh_Email_Batch_Test {
    static ReceivingNoteTestDataFactory factory;
    /**
    @description 安装master数据
    */
    @testSetup static void setupMasterData(){
        factory = new ReceivingNoteTestDataFactory();
        factory.setupMasterData();
    }
    /**
    @param typeStringListString 格式:'备品类型,管理种类;备品类型,管理种类...'
    @description 造出指定类型的清单数据,并插入数据库
    */
    static void setupTestData(String typeStringListString){
        factory = new ReceivingNoteTestDataFactory();
        if(String.isBlank(typeStringListString)){
            typeStringListString = '固定资产,个体管理;附属品,个体管理;附属品,数量管理;耗材,数量管理;低值易耗品,数量管理';
        }
        List<String> typeStringList = typeStringListString.split(';');
        factory.setupReceivingNoteData(typeStringList);
    }
    /**
    @description 测试邮件batch
    */
    static testMethod void testEmailBatch() {
        // 造出已入库的数据
        // 状态调整为已入库指示
        setupTestData('固定资产,个体管理');
        ReceivingNoteSummary__c  rns = factory.rnsMap.get('固定资产,个体管理');
        rns.Received_Confirm_Time__c = System.Now();
        upsert rns Internal_Asset_number__c;
        ReceivingNoteDetail__c rnd = factory.rndMap.get('固定资产,个体管理');
        rnd.unknow_serial_NO_product__c = 'TRUE';
        rnd.Loaner_accsessary__c = 'TRUE';
        //rnd.DataConfirmation__c = true;
        rnd.AcceptanceTime__c = System.Now();
        rnd.AcceptanceResult__c = 'OK';
        rnd.Inspection_result_after__c = 'OK';
        rnd.DataConfirmationAgain__c = true;
        rnd.Arrival_wh_Request_time__c = System.Now();
        rnd.Arrival_in_wh__c = true;
 
        ReceivingNoteDetail__c rnd1 = new ReceivingNoteDetail__c();
        rnd1.ReceivingNoteSummary__c = rns.Id;
        rnd1.Fixture_Set_Detail__c = factory.fsdList[1].Id;
        rnd1.Product_Serial_No__c = 'SB-PRO-SERIAL-x';
        rnd1.passNo2__c = '02';
        rnd1.passNo3__c = '1';
        rnd1.Arrival_wh_Request_time__c = System.Now();
        rnd1.Arrival_in_wh__c = true;
 
        ReceivingNoteDetail__c rnd2 = new ReceivingNoteDetail__c();
        rnd2.ReceivingNoteSummary__c = rns.Id;
        rnd2.Fixture_Set_Detail__c = factory.fsdList[1].Id;
        rnd2.Product_Serial_No__c = 'SB-PRO-SERIAL-y';
        rnd2.passNo2__c = '02';
        rnd2.passNo3__c = '2';
        rnd2.Arrival_wh_Request_time__c = System.Now();
        rnd2.Arrival_in_wh__c = true;
 
        upsert new List<ReceivingNoteDetail__c> {rnd,rnd1,rnd2} Product_Serial_No__c;
 
        ReceivingNote__c rn = [SELECT Have_Arrival_wh_Email__c FROM ReceivingNote__c];
        System.assertEquals(null, rn.Have_Arrival_wh_Email__c);
 
        Test.startTest();
        Send_Have_Arrival_wh_Email_BatchSchedul emailSend_Have_Arrival_wh_Email_BatchSchedul = new Send_Have_Arrival_wh_Email_BatchSchedul();
        SchedulableContext sc;
        emailSend_Have_Arrival_wh_Email_BatchSchedul.execute(sc);
        Test.stopTest();
 
        rn = [SELECT Have_Arrival_wh_Email__c FROM ReceivingNote__c];
        System.assertEquals('SB-MODEL-01 SB-MODEL-02 * 2', rn.Have_Arrival_wh_Email__c);
    }
}