沙世明
2022-09-13 bfca7a84bec815da594f1d12558535ed06d2490b
force-app/main/default/classes/EquipmentRenewBatchTest.cls
@@ -1,7 +1,7 @@
@isTest(SeeAllData=false)
private class EquipmentRenewBatchTest {
  
    @testSetup
    private static void initData(){
         List<RecordType> rectCo = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '病院'];
        if (rectCo.size() == 0) {
@@ -51,8 +51,8 @@
        prd1.Name                   = 'Prd1';
        prd1.Manual_Entry__c        = false;
        // prd1.Category2__c = '本体';
        // prd1.Category3__c = '纤维镜';
        prd1.Category4__c = 'SD EndoEYE';
        prd1.Category3__c = '纤维镜';
        prd1.Category4__c = '妇科用硬性镜';
        // prd1.Category5__c = '260SL系列';
        prd1.Asset_Model_No__c = '1001';
        prd1.Important_product__c = true;
@@ -73,6 +73,36 @@
        prd2.Important_product__c = true;
        prd2.Important_Rroduct_1GI__c = true;
        insert prd2;
        Product2 prd3 = new Product2();
        prd3.ProductCode_Ext__c     = 'Prd3';
        prd3.ProductCode            = 'Prd3';
        prd3.Repair_Product_Code__c = 'Prd3_RP';
        prd3.Name                   = 'Prd3';
        prd3.Manual_Entry__c        = false;
        // prd1.Category2__c = '本体';
        prd3.Category3__c = '纤维镜';
        // prd2.Category4__c = 'SD EndoEYE';
        // prd1.Category5__c = '260SL系列';
        prd3.Asset_Model_No__c = '1001';
        prd3.Important_product__c = true;
        prd3.Important_Rroduct_1GI__c = true;
        insert prd3;
        Product2 prd4 = new Product2();
        prd4.ProductCode_Ext__c     = 'Prd4';
        prd4.ProductCode            = 'Prd4';
        prd4.Repair_Product_Code__c = 'Prd4_RP';
        prd4.Name                   = 'Prd4';
        prd4.Manual_Entry__c        = false;
        // prd1.Category2__c = '本体';
        prd4.Category4__c = '妇科用硬性镜';
        // prd2.Category4__c = 'SD EndoEYE';
        // prd1.Category5__c = '260SL系列';
        prd4.Asset_Model_No__c = '1001';
        prd4.Important_product__c = true;
        prd4.Important_Rroduct_1GI__c = true;
        insert prd4;
        Consumable_order_details2__c saledet1 = new Consumable_order_details2__c();
        saledet1.Name = 'OCM_01_001001';
@@ -113,6 +143,8 @@
        contract.Contract_End_Date__c = Date.newInstance(2021,11,1);       
        contract.SalesOfficeCode_selection__c = '北京RC';
        contract.New_Contract_TypeF_Text__c = '续签合同';
        contract.IF_Target_Renew__c='1';
        contract.Contract_Conclusion_Date__c=Date.newInstance(2021,10,5);
        system.assertEquals(contract.Contract_End_Date__c >= Date.newInstance(2021,10,1) && contract.Contract_End_Date__c <= Date.newInstance(2022,9,30),true);
        insert contract;
@@ -129,6 +161,8 @@
        contract2.Contract_Start_Date__c = Date.newInstance(2021,10,5);   
        contract2.Contract_End_Date__c = Date.newInstance(2021,11,1);       
        contract2.SalesOfficeCode_selection__c = '北京RC';
        contract2.IF_Target_Renew__c='1';
        contract2.Contract_Conclusion_Date__c=Date.newInstance(2021,10,5);
        system.assertEquals(contract2.Contract_End_Date__c >= Date.newInstance(2021,10,1) && contract2.Contract_End_Date__c <= Date.newInstance(2022,9,30),true);
        insert contract2;
@@ -149,6 +183,7 @@
        ast.Hospital__c                      = hospital.Id;
        ast.CurrentContract__c = contract.Id;
        ast.CurrentContract_Asset_Price__c = 0;
        ast.CurrentContract_F__c=contract.Id;
        insert ast;
        asset ast1 = new asset();
@@ -169,9 +204,55 @@
        ast1.CurrentContract__c = contract2.Id;
        ast1.CurrentContract_Asset_Price__c = 0;
        insert ast1;
        asset ast2 = new asset();
        ast2.Name                             = prd3.Name;
        ast2.Product2Id                       = prd3.Id;
        ast2.SerialNumber                     = saledet1.SerialLotNo__c + '(' + saledet1.TracingCode__c + ')';
        ast2.SLMark__c                        = 'Serial Number';         // 固定 dnInfo.SorLMark;
        ast2.Guarantee_period_for_products__c = saledet1.Guarantee_period_for_products__c;
        ast2.TracingCode__c                   = saledet1.TracingCode__c;
        ast2.Guaranteen_end__c                = saledet1.Sterilization_limit__c;
        ast2.Barcode__c                       = saledet1.Bar_Code__c;
        ast2.Product_Serial_No__c             = saledet1.SerialLotNo__c  + '(' + saledet1.TracingCode__c + ')';
        ast2.Asset_Owner__c                   = '经销商资产';
        ast2.AccountId                        = depart.Id;
        ast2.Department_Class__c              = section.Id;
        // ast.Asset_owner_delaer_name__c       = hospital.Id;
        ast2.Hospital__c                      = hospital.Id;
        ast2.CurrentContract__c = contract.Id;
        ast2.CurrentContract_Asset_Price__c = 0;
        insert ast2;
        asset ast3 = new asset();
        ast3.Name                             = prd4.Name;
        ast3.Product2Id                       = prd4.Id;
        ast3.SerialNumber                     = saledet1.SerialLotNo__c + '(' + saledet1.TracingCode__c + ')';
        ast3.SLMark__c                        = 'Serial Number';         // 固定 dnInfo.SorLMark;
        ast3.Guarantee_period_for_products__c = saledet1.Guarantee_period_for_products__c;
        ast3.TracingCode__c                   = saledet1.TracingCode__c;
        ast3.Guaranteen_end__c                = saledet1.Sterilization_limit__c;
        ast3.Barcode__c                       = saledet1.Bar_Code__c;
        ast3.Product_Serial_No__c             = saledet1.SerialLotNo__c  + '(' + saledet1.TracingCode__c + ')';
        ast3.Asset_Owner__c                   = '经销商资产';
        ast3.AccountId                        = depart.Id;
        ast3.Department_Class__c              = section.Id;
        // ast.Asset_owner_delaer_name__c       = hospital.Id;
        ast3.Hospital__c                      = hospital.Id;
        ast3.CurrentContract__c = contract.Id;
        ast3.CurrentContract_Asset_Price__c = 0;
        insert ast3;
        Account_Service_Of_Target__c asot=new Account_Service_Of_Target__c();
        asot.OCSM_Period_half__c='2H';
        asot.Account_HP__c=hospital.Id;
        insert asot;
    }
    static testMethod void testMethod1() {
        /*
        Date toDayTime = Date.today();
         Date start_date1 ;
         Date end_date1 ;
@@ -191,11 +272,12 @@
            end_date2 = Date.newInstance(toDayTime.year(),12,31);
            deadlineTime = Date.newInstance(toDayTime.year(),9,30);
        }
        */
        system.Test.startTest();
        initData();
        //initData();
               
        /*
        String query='select Id,(select Id,CurrentContract__c,CurrentContract__r.Contract_End_Date__c,CurrentContract__r.Contract_Start_Date__c,CurrentContract__r.New_Contract_TypeF_Text__c,Product2.ServiceCategory__c,CurrentContract__r.Status__c' 
                + ' from Asset_Hospital__r where CurrentContract__r.Contract_End_Date__c >= :start_date1 and CurrentContract__r.Contract_End_Date__c <= :end_date2)'
                + ' from Account';
@@ -206,8 +288,25 @@
                   }
               }
              
               system.assertEquals(true,accs == null);
              // system.assertEquals(true,accs == null);
              */
        database.executeBatch(new EquipmentRenewBatch(),200);
        system.Test.stopTest();
    }
    static testMethod void testMethod2() {
        system.Test.startTest();
        List<Account_Service_Of_Target__c> asotl=[select Id,Account_HP__c,OCSM_Period_half__c from Account_Service_Of_Target__c];
        delete asotl;
        List<Account_Service_Of_Target__c> asot2=[select Id,Account_HP__c,OCSM_Period_half__c from Account_Service_Of_Target__c];
        System.debug('this is test 2-----------------------------');
        if(asot2==null){
            System.debug('this is test 2 value ==null');
        }
        System.debug('value is'+asot2);
        database.executeBatch(new EquipmentRenewBatch(),200);
        system.Test.stopTest();
    }
}