@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) {
            // 取引先
            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) {
            //订单
            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'
            );
        }
    }
}
