@isTest
private class LexConsumableAccountControllerTest {
  public static Account account1 = new Account();
  public static Account account2 = new Account();
  public static Account account3 = new Account();
  public static Account consumable = new Account();
  public static Contact contact1 = new Contact();
  public static User user = new User();
  public static Agency_Hospital_Link__c agency_hospital_link = new Agency_Hospital_Link__c();

  static testMethod void testMethod1() {
    User thisUser = [SELECT Id FROM User WHERE Id = :UserInfo.getUserId()];
    System.runAs(thisUser) {
      List<Account> accList = new List<Account>();
      // 取引先
      account1.Name = 'test1医院';
      account1.RecordTypeId = '01210000000QemG';
      //   account1.Is_Active__c = '草案中';
      accList.add(account1);

      account2.Name = 'test2医院';
      account2.RecordTypeId = '01210000000QemG';
      //   account2.Is_Active__c = '有効';
      accList.add(account2);

      account3.Name = 'test3医院';
      account3.RecordTypeId = '01210000000QemG';
      //   account3.Is_Active__c = '申请中';
      accList.add(account3);
      insert accList;

      consumable.Name = 'test1经销商';
      consumable.RecordTypeId = '01210000000Qem1';
      insert consumable;

      contact1.AccountId = account1.Id;
      contact1.FirstName = '責任者';
      contact1.LastName = 'test1医院';
      insert contact1;

      // ユーザー
      Profile p = [
        SELECT Id
        FROM Profile
        WHERE Name = '901_经销商社区普通权限'
      ];
      user.ProfileId = p.Id;
      user.ContactId = contact1.Id;
      user.FirstName = 'ユーザー';
      user.LastName = 'テスト';
      user.Email = 'test_user@example.com';
      user.emailencodingkey = 'UTF-8';
      user.languagelocalekey = 'zh_CN';
      user.localesidkey = 'ja_JP';
      user.timezonesidkey = 'Asia/Shanghai';
      user.Username = 'test_user@example.com';
      user.Alias = 'テユ';
      user.CommunityNickname = 'テストユーザー';
      insert user;

      // 代理店医院
      agency_hospital_link.Name = 'test1代理店医院';
      agency_hospital_link.Hospital__c = account1.Id;
      agency_hospital_link.Agency__c = consumable.Id;
      agency_hospital_link.OwnerId = user.Id;
      insert agency_hospital_link;
    }
    System.runAs(user) {
      //订单
      Consumable_order__c Order1 = new Consumable_order__c();
      Order1.Name = 'OCM_01_001';
      Order1.Order_status__c = '批准';
      Order1.Order_type__c = '到货';
      Order1.Dealer_Info__c = account1.Id;
      Order1.RecordTypeid = '01210000000c9dqAAA';
      Order1.Order_ProType__c = 'ET';
      Order1.Order_ForHospital__c = account1.Id;
      insert Order1;

      Consumable_Orderdetails__c con = new Consumable_Orderdetails__c();
      con.Consumable_order__c = Order1.Id;
      insert con;

      LexConsumableAccountController.init(2, 1, 'thisYear');
      LexConsumableAccountController.init(2, 1, 'lastYear');
      LexConsumableAccountController.init(2, 1, '2023');
      LexConsumableAccountController.changeFiscalYearView('thisYear');
      LexConsumableAccountController.changeFiscalYearView('lastYear');
      // LexConsumableAccountController.changelistView('62. 医院_Hospital申请中的医院',consumable.Id,'ET',1,0,'Is_Active__c','ASC');
      // LexConsumableAccountController.changelistView('63. 医院_Hospital上周创建的医院',consumable.Id,'ET',1,0,'Is_Active__c','ASC');
    }

  }
  static testMethod void testMethod2() {
    User thisUser = [SELECT Id FROM User WHERE Id = :UserInfo.getUserId()];
    System.runAs(thisUser) {
      // 取引先
      account1.Name = 'test1医院';
      account1.RecordTypeId = '01210000000QemG';
      //   account1.Is_Active__c = '草案中';
      insert account1;

      account2.Name = 'test2医院';
      account2.RecordTypeId = '01210000000QemG';
      //   account2.Is_Active__c = '有効';
      insert account2;

      account3.Name = 'test3医院';
      account3.RecordTypeId = '01210000000QemG';
      //   account3.Is_Active__c = '申请中';
      insert account3;

      consumable.Name = 'test1经销商';
      consumable.RecordTypeId = '01210000000Qem1';
      insert consumable;

      contact1.AccountId = account1.Id;
      contact1.FirstName = '責任者';
      contact1.LastName = 'test1医院';
      insert contact1;

      // ユーザー
      Profile p = [
        SELECT Id
        FROM Profile
        WHERE Name = '901_经销商社区普通权限'
      ];
      user.ProfileId = p.Id;
      user.ContactId = contact1.Id;
      user.FirstName = 'ユーザー';
      user.LastName = 'テスト';
      user.Email = 'test_user@example.com';
      user.emailencodingkey = 'UTF-8';
      user.languagelocalekey = 'zh_CN';
      user.localesidkey = 'ja_JP';
      user.timezonesidkey = 'Asia/Shanghai';
      user.Username = 'test_user@example.com';
      user.Alias = 'テユ';
      user.CommunityNickname = 'テストユーザー';
      insert user;

      // 代理店医院
      agency_hospital_link.Name = 'test1代理店医院';
      agency_hospital_link.Hospital__c = account1.Id;
      agency_hospital_link.Agency__c = consumable.Id;
      agency_hospital_link.OwnerId = user.Id;
      insert agency_hospital_link;
    }
    System.runAs(user) {
      PageReference page = new PageReference('/apex/ConsumableAccount');
      System.Test.setCurrentPage(page);
      ConsumableAccountController ca = new ConsumableAccountController();
      //ConsumableAccountController.getlistViewOptions();
      ca.init();

      ca.filterName = '61. 医院_Hospital草案中的医院';
      ca.changelistView();

      ca.filterName = '62. 医院_Hospital申请中的医院';
      ca.changelistView();

      ca.filterName = '63. 医院_Hospital上周创建的医院';
      ca.changelistView();

      ca.refreshPageSize();

      ca.sortKey = '0';
      ca.accsort();

      ca.sortKey = '1';
      LexConsumableAccountController.changelistView(
        '62. 医院_Hospital申请中的医院',
        consumable.Id,
        'ET',
        1,
        0,
        'Is_Active__c',
        'ASC'
      );
      LexConsumableAccountController.changelistView(
        '63. 医院_Hospital上周创建的医院',
        consumable.Id,
        'ET',
        1,
        0,
        'Is_Active__c',
        'ASC'
      );
    }
  }
}
