@isTest
private class ConInvoiceListControllerTest
{
    static testMethod void conInvoiceListTestinit(){
        Profile prof = [select Id from Profile where Name ='901_经销商社区普通权限_2重验证(ET Email)'];
        List<RecordType> rectCo = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '販売店'];
        if (rectCo.size() == 0) {
            return;
        }
        List<RecordType> rectHos = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '病院'];
        if (rectHos.size() == 0) {
            return;
        }
        Account myAccount1 = new Account(name='testaccount001',RecordTypeId = rectCo[0].Id );
        Account myAccount2 = new Account(name='testaccount002',RecordTypeId = rectHos[0].Id );
        insert myAccount1;
        Contact core = new Contact(email='jplumber@salesforce.com', firstname='Joe',lastname='Plumber',accountid=myAccount1.id);
        insert core;
        user myUser_test = New User(ContactId = core.id,Alias = 'newUser',Email='newuser@testorg.com',EmailEncodingKey='UTF-8', LastName='testUser', LanguageLocaleKey='zh_CN',LocaleSidKey='zh_CN', ProfileId = prof.Id,TimeZoneSidKey='Asia/Shanghai', UserName='testUser@testorg.com',Work_Location__c = '北京');
        insert myUser_test;
        system.runAs(myUser_test){
            Consumable_order__c TestList1 = new Consumable_order__c(Name='Test1',Invoice_Date__c=Date.today(),Dealer_info__c=myAccount1.Id,Invoice_status__c='草案中',Order_ForHospital__c =myAccount2.Id,SummonsForDirction__c='直接销售给医院',Order_status__c='草案中',Order_type__c='发票',recordtypeid = System.Label.RT_ConOrder_Invoice,Order_ProType__c = 'ET');
            Consumable_order__c TestList2 = new Consumable_order__c(Name='Test2',Invoice_Date__c=Date.today(),Dealer_info__c=myAccount1.Id,Invoice_status__c='提交',Order_ForHospital__c =myAccount2.Id,SummonsForDirction__c='直接销售给医院',Order_status__c='草案中',Order_type__c='发票',recordtypeid = System.Label.RT_ConOrder_Invoice,Order_ProType__c = 'ET');
            insert new Consumable_order__c[]{TestList1,TestList2};
            ConInvoiceListController CDC = new ConInvoiceListController();
            CDC.init();
            System.assertEquals('Test1', CDC.raesList[0].name);
            System.assertEquals('Test2', CDC.raesList[1].name);
            CDC.SortLimited();
            System.assertEquals('Test1', CDC.raesList[0].name);
            System.assertEquals('Test2', CDC.raesList[1].name);
        }
    }
    //检索
    static testMethod void invoiceCodeSearchTest(){
        Profile prof = [select Id from Profile where Name ='901_经销商社区普通权限_2重验证(ET Email)'];
        List<RecordType> rectCo = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '販売店'];
        if (rectCo.size() == 0) {
            return;
        }
        List<RecordType> rectHos = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '病院'];
        if (rectHos.size() == 0) {
            return;
        }
        Account myAccount1 = new Account(name='testaccount001',RecordTypeId = rectCo[0].Id );
        Account myAccount2 = new Account(name='testaccount002',RecordTypeId = rectHos[0].Id );
        insert myAccount1;
        Contact core = new Contact(email='jplumber@salesforce.com', firstname='Joe',lastname='Plumber',accountid=myAccount1.id);
        insert core;
        user myUser_test = New User(ContactId = core.id,Alias = 'newUser',Email='newuser@testorg.com',EmailEncodingKey='UTF-8', LastName='testUser', LanguageLocaleKey='zh_CN',LocaleSidKey='zh_CN', ProfileId = prof.Id,TimeZoneSidKey='Asia/Shanghai', UserName='testUser@testorg.com',Work_Location__c = '北京');
        insert myUser_test;
        system.runAs(myUser_test){
            Consumable_order__c TestList1 = new Consumable_order__c(Name='Test1',Invoice_Date__c=Date.today(),Dealer_info__c=myAccount1.Id,Invoice_status__c='草案中',Order_ForHospital__c =myAccount2.Id,SummonsForDirction__c='直接销售给医院',Order_status__c='草案中',Order_type__c='发票',recordtypeid = System.Label.RT_ConOrder_Invoice,Order_ProType__c = 'ET');
            Consumable_order__c TestList2 = new Consumable_order__c(Name='Test2',Invoice_Date__c=Date.today(),Dealer_info__c=myAccount1.Id,Invoice_status__c='提交',Order_ForHospital__c =myAccount2.Id,SummonsForDirction__c='直接销售给医院',Order_status__c='草案中',Order_type__c='发票',recordtypeid = System.Label.RT_ConOrder_Invoice,Order_ProType__c = 'ET');
            insert new Consumable_order__c[]{TestList1,TestList2};
            ConInvoiceListController CDC = new ConInvoiceListController();
            CDC.init();
            System.assertEquals('Test1', CDC.raesList[0].name);
            System.assertEquals('Test2', CDC.raesList[1].name);
            CDC.coc.Invoice_status__c = '提交';
            CDC.invoiceCodeSearch();
            System.assertEquals(1, CDC.raesList.size());
            CDC.clearUp();
            System.assertEquals(2, CDC.raesList.size());
        }
    }
}