@isTest
private class LexConInvoiceListTest {
  static testMethod void conInvoiceListTestinit() {
    user myUser_test;
    Account myAccount2;
    Account myAccount1;
    User thisUser = [SELECT Id FROM User WHERE Id = :UserInfo.getUserId()];
    System.runAs(thisUser) {
      Profile prof = [
        SELECT Id
        FROM Profile
        WHERE Name = '901_经销商社区普通权限_2重验证(ET)'
      ];
      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;
      }
      myAccount1 = new Account(
        name = 'testaccount001',
        RecordTypeId = rectCo[0].Id
      );
      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;
      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 List<Consumable_order__c>{ TestList1, TestList2 };
      LexConInvoiceList.init();
      // 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() {
    user myUser_test;
    Account myAccount2;
    Account myAccount1;
    User thisUser = [SELECT Id FROM User WHERE Id = :UserInfo.getUserId()];
    System.runAs(thisUser) {
      Profile prof = [
        SELECT Id
        FROM Profile
        WHERE Name = '901_经销商社区普通权限_2重验证(ET)'
      ];
      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;
      }
      myAccount1 = new Account(
        name = 'testaccount001',
        RecordTypeId = rectCo[0].Id
      );
      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;
      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 List<Consumable_order__c>{ TestList1, TestList2 };
      LexConInvoiceList CDC = new LexConInvoiceList();
      LexConInvoiceList.init();
      LexConInvoiceList.invoiceCodeSearch(
        Date.today(),
        Date.today(),
        '提交',
        'test',
        'test1',
        '0010l00001ajxZ2AAI',
        '北京',
        'ET'
      );
      // 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());
    }
  }
}
