@isTest
private class LexUpAccountProLimitControllerTest {
  @isTest
  static void proLimitTest() {
    List<RecordType> rectCo = [
      SELECT Id
      FROM RecordType
      WHERE IsActive = TRUE AND SobjectType = 'Account' AND Name = '販売店'
    ];
    if (rectCo.size() == 0) {
      return;
    }
    Profile prof = [
      SELECT Id
      FROM Profile
      WHERE Name = '901_经销商社区普通权限_2重验证(ET)'
    ];
    Product2 prod01 = new Product2(
      Name = 'Test01',
      ProductCode = 'Test01',
      Asset_Model_No__c = 'Test01',
      SFDA_Status__c = '有効',
      Dealer_special_Object__c = true
    );
    Product2 prod02 = new Product2(
      Name = 'Test02',
      ProductCode = 'Test02',
      Asset_Model_No__c = 'Test02',
      SFDA_Status__c = '有効',
      Dealer_special_Object__c = true
    );
    insert new List<Product2>{ prod01, prod02 };
    Product2__c pro1 = new Product2__c(
      Name = 'Pro001',
      OT_CODE_Text__c = 'Test001',
      Product2__c = prod01.Id
    );
    Product2__c pro2 = new Product2__c(
      Name = 'Pro002',
      OT_CODE_Text__c = 'Test002',
      Product2__c = prod02.Id
    );
    insert new List<Product2__c>{ pro1, pro2 };

    Account myAccount2 = new Account(
      Name = 'Testaccount002',
      Dealer_discount__c = 20,
      RecordTypeId = rectCo[0].Id,
      Product_Limit_Date__c = 'Test01|2|4'
    );
    insert myAccount2;
    String productLimit = 'Test01|2|4,Test02|3|5';
    String resultText = UpAccountProLimit.upAccount(
      myAccount2.Id,
      productLimit,
      'ET'
    );
    List<Account> accountre = [
      SELECT Id, Product_Limit_Date__c
      FROM Account
      WHERE Id = :myAccount2.Id
    ];
    LexUpAccountProLimit.upAccount(myAccount2.Id, productLimit, 'ENG');
    LexUpAccountProLimit.upAccount(myAccount2.Id, productLimit, '');
    LexUpAccountProLimit.upAccount('1000', productLimit, 'ENG');
    // System.assertEquals('Test01|2|4,Test02|3|5', accountre[0].Product_Limit_Date__c);
  }
  @isTest
  static void proLimitTest1() {
    List<RecordType> rectCo = [
      SELECT Id
      FROM RecordType
      WHERE IsActive = TRUE AND SobjectType = 'Account' AND Name = '販売店'
    ];
    if (rectCo.size() == 0) {
      return;
    }
    Profile prof = [
      SELECT Id
      FROM Profile
      WHERE Name = '901_经销商社区普通权限_2重验证(ET)'
    ];
    Product2 prod01 = new Product2(
      Name = 'Test01',
      ProductCode = 'Test01',
      Asset_Model_No__c = 'Test01',
      SFDA_Status__c = '不要',
      Dealer_special_Object__c = true
    );
    Product2 prod02 = new Product2(
      Name = 'Test02',
      ProductCode = 'Test02',
      Asset_Model_No__c = 'Test02',
      SFDA_Status__c = '準備中',
      Dealer_special_Object__c = true
    );
    insert new List<Product2>{ prod01, prod02 };
    Product2__c pro1 = new Product2__c(
      Name = 'Pro001',
      OT_CODE_Text__c = 'Test001',
      Product2__c = prod01.Id
    );
    Product2__c pro2 = new Product2__c(
      Name = 'Pro002',
      OT_CODE_Text__c = 'Test002',
      Product2__c = prod02.Id
    );
    insert new List<Product2__c>{ pro1, pro2 };
    System.debug('pro1===>' + pro1);
    System.debug('pro2===>' + pro2);

    List<Product2__c> roduct2List1 = [
      SELECT
        Id,
        Asset_Model_No__c,
        Estimation_Entry_Possibility__c,
        Product_Type__c
      FROM Product2__c
      WHERE id = :pro2.Id
    ];
    List<Product2__c> roduct2List2 = [
      SELECT
        Id,
        Asset_Model_No__c,
        Estimation_Entry_Possibility__c,
        Product_Type__c
      FROM Product2__c
      WHERE id = :pro1.Id
    ];
    System.debug('roduct2List2===>' + roduct2List2);

    List<Product2__c> roduct2List = [
      SELECT Asset_Model_No__c, Estimation_Entry_Possibility__c
      FROM Product2__c
      WHERE
        Product_Type__c LIKE '%ENG%'
        AND Estimation_Entry_Possibility__c = '○'
    ];
    System.debug('roduct2List' + roduct2List);

    Account myAccount2 = new Account(
      Name = 'Testaccount002',
      Dealer_discount__c = 20,
      RecordTypeId = rectCo[0].Id,
      Product_Limit_Date__c = 'Test01|2|4'
    );
    insert myAccount2;
    String productLimit = 'Test01|2|4,Test02|3|5';
    String productLimit1 = 'Test01|2|4';
    String resultText = UpAccountProLimit.upAccount(
      myAccount2.Id,
      productLimit,
      'ENG'
    );
    List<Account> accountre = [
      SELECT Id, Product_Limit_Date__c
      FROM Account
      WHERE Id = :myAccount2.Id
    ];
    // LexUpAccountProLimit.upAccount(myAccount2.Id,productLimit,'');
    LexUpAccountProLimit.upAccount(myAccount2.Id, productLimit1, 'ET');
    // System.assertEquals('Test01|2|4,Test02|3|5', accountre[0].Product_Limit_Date__c);
  }
}
