高章伟
2022-03-10 1312ba82d4c880bdb5357d28e0d4af5b285f610f
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
@isTest
private class NFM115ControllerTest {
    static Account Agency;
    static Product2 product;
 
    public class Samples {
        public NFMUtil.Monitoring Monitoring;
        public Sample[] Sample;
    }
    //样本订货单
    public class Sample {
        public String AgentCode;
        public String DeliveryAddress;
        public String DeliveryContact;
        public String DeliveryPhone;
        public Detail[] Detail;
    }
    //样本订货单明细
    public class Detail {
        public String ItemCode;
        public String ItemQuantity;
    }
 
    static testMethod void testMethod1(){
        Account account2 = new Account();
        account2.Name = 'test1经销商';
        account2.RecordTypeId = '01210000000Qem1';
        insert account2;
        ID AgencyID = Schema.SObjectType.Account.getRecordTypeInfosByDeveloperName().get('Office').getRecordTypeId();
        Agency = new Account(ParentId = account2.Id, RecordTypeId = AgencyID, Name = 'NFM115TestAgency', FSE_SP_Main_Leader__c = UserInfo.getUserId(), FSE_GI_Main_Leader__c = UserInfo.getUserId());
        insert Agency;
        Agency = [select Management_Code__c, Management_Code_Auto__c, Name, Id from Account where Id = :Agency.Id];
 
        Sample_order_list__c samOrder = new Sample_order_list__c();
        samOrder.Status__c          = '订单已发送'; 
        samOrder.DeliveryAddress__c = '12312';
        samOrder.DeliveryPhone__c   = '12312312';
        samOrder.DeliveryContact__c = 'thh';
        samOrder.ReceivePart__c     = '办事处';
        samOrder.Account__c         = Agency.Id;
        insert samOrder;
        List<String> samIdList = new List<String>();
        samIdList.add(samOrder.Id);
        if (samIdList.size() > 0) {
            BatchIF_Log__c iflog = new BatchIF_Log__c();
            iflog.Type__c = 'NFM115';
            iflog.Log__c  = 'callout start\n';
            insert iflog;           
            NFM115Controller.callout(iflog.Id, samIdList);
        }
    }
 
    static testMethod void testMethod2(){
        Account account2 = new Account();
        account2.Name = 'test1经销商';
        account2.RecordTypeId = '01210000000Qem1';
        insert account2;
        ID AgencyID = Schema.SObjectType.Account.getRecordTypeInfosByDeveloperName().get('Office').getRecordTypeId();
        Agency = new Account(ParentId = account2.Id, RecordTypeId = AgencyID, Name = 'NFM115TestAgency', FSE_SP_Main_Leader__c = UserInfo.getUserId(), FSE_GI_Main_Leader__c = UserInfo.getUserId());
        insert Agency;
        Agency = [select Management_Code__c, Management_Code_Auto__c, Name, Id from Account where Id = :Agency.Id];
 
        product = new Product2(Name='name05',IsActive=true,Family='SP',Fixture_Model_No__c='n05',Serial_Lot_No__c='S/N tracing',
                                Fixture_Model_No_T__c = 'n05', ProductCode = 'A06000008601',ProductCode_Ext__c='pc05',Manual_Entry__c=false);
        insert product;
 
        Sample_order_list__c samOrder = new Sample_order_list__c();
        samOrder.Status__c          = '订单已发送';
        samOrder.DeliveryAddress__c = '12312';
        samOrder.DeliveryPhone__c   = '12312312';
        samOrder.DeliveryContact__c = 'thh';
        samOrder.ReceivePart__c     = '办事处';
        samOrder.Account__c         = Agency.Id;
        insert samOrder;
 
        Sample_order_list_detail__c samDetail = new Sample_order_list_detail__c();
        samDetail.Product__c           = product.Id;
        samDetail.ItemQuantity__c      = 100;
        samDetail.Sample_order_list__c = samOrder.Id;
        insert samDetail;
 
        Samples samples = new Samples();
        samples.Monitoring = new NFMUtil.Monitoring();
        Datetime nowDT = Datetime.now();
        String nowStr = nowDT.format('yyyyMMddHHmm');
        samples.Monitoring.TransmissionDateTime = nowStr;
        samples.Monitoring.Text                 = ''; 
        samples.Monitoring.Tag                  = 'MSGH';
        samples.Monitoring.Sender               = 'SFDC';
        samples.Monitoring.Receiver             = 'SAP';
        samples.Monitoring.MessageType          = 'NFM115';
 
        samples.Sample = new List<Sample>();
        Sample sample  = new Sample();
        sample.AgentCode       = samOrder.AgentCode__c;
        sample.DeliveryAddress = samOrder.DeliveryAddress__c;
        sample.DeliveryContact = samOrder.DeliveryContact__c;
        sample.DeliveryPhone   = samOrder.DeliveryPhone__c;
        sample.Detail          = new List<Detail>();
        Detail Detail = new Detail();
        Detail.ItemCode     = samDetail.ItemCode__c;
        Detail.ItemQuantity = String.valueOf(samDetail.ItemQuantity__c);
        sample.Detail.add(Detail);
        samples.Sample.add(sample);
 
        NFMUtil.Monitoring Monitoring   = new NFMUtil.Monitoring();
        Monitoring.Tag                  = samples.Monitoring.Tag;
        Monitoring.Sender               = samples.Monitoring.Sender;
        Monitoring.Receiver             = samples.Monitoring.Receiver;
        Monitoring.MessageType          = samples.Monitoring.MessageType;
        Monitoring.MessageGroupNumber   = samples.Monitoring.MessageGroupNumber;
        Monitoring.NumberOfRecord       = samples.Monitoring.NumberOfRecord;
        Monitoring.TransmissionDateTime = samples.Monitoring.TransmissionDateTime;
        Monitoring.Text = '';
        BatchIF_Log__c rowData = NFMUtil.makeRowData(Monitoring, 'NFM115', samples);
 
        List<String> samIdList = new List<String>();
        samIdList.add(samOrder.Id);
        if (samIdList.size() > 0) {
            BatchIF_Log__c iflog = null;           
            NFM115Controller.execute(rowData, null);
        }
    }
}