@isTest
private class InventoryListControllerTest {

    static testMethod void myUnitTest() {
        // TO DO: implement unit test

        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重验证'];
        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 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 Product2__c[] {pro1, pro2};
      
        Account myAccount2 = new Account(name='Testaccount002',Dealer_discount__c =20,RecordTypeId = rectCo[0].Id);
        insert myAccount2;

        Contact core = new Contact(email='jplumber@salesforce.com', firstname='Joe',lastname='Plumber',accountid=myAccount2.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');
        insert MyUser_Test;
        System.runAs(MyUser_Test){
	        Consumable_order__c Order1 = new Consumable_order__c();
	        Order1.Name = 'OCM_01_001';
	        Order1.Order_status__c = '批准';
	        Order1.Order_type__c = '盘点';
	        Order1.RecordTypeid = System.Label.RT_ConOrder_Inventory;
	        insert  Order1;

	        Consumable_order__c Order2 = new Consumable_order__c();
	        Order2.Name = 'OCM_01_002';
	        Order2.Order_status__c = '批准';
	        Order2.Order_type__c = '订单';
	        Order2.RecordTypeid = System.Label.RT_ConOrder_Order;
	        insert  Order2;

	        Consumable_orderdetails__c Orderdet1 = new Consumable_orderdetails__c();
	        Orderdet1.Name = 'OCM_01_001001';
	        Orderdet1.Consumable_order__c = Order1.Id;
	        Orderdet1.RecordTypeId = System.Label.RT_ConOrderDetail1_Inventory ;
	        Consumable_orderdetails__c Orderdet2 = new Consumable_orderdetails__c();
	        Orderdet2.Name = 'OCM_01_001002';
	        Orderdet2.Consumable_order__c = Order1.Id;
	        Orderdet2.RecordTypeId = System.Label.RT_ConOrderDetail1_Inventory ;

	        Consumable_order_details2__c Orderdet3 = new Consumable_order_details2__c();
	        Orderdet3.Name = 'OCM_01_001003';
	        Orderdet3.Consumable_order_minor__c = Order1.Id;
	        Orderdet3.Consumable_Inventory_order__c = Order1.Id;
	        Orderdet3.RecordTypeId = System.Label.RT_ConOrderDetail2_Delivery;
	        Orderdet3.Bar_Code__c = '33333';
	        insert Orderdet3;

	        insert new Consumable_orderdetails__c[] {Orderdet1, Orderdet2};

	        PageReference page = new PageReference('/InventoryList?Esetid=' + Order1.Id);
	        System.Test.setCurrentPage(page);
	        InventoryListController Controller = new InventoryListController();
	        //初始化测试
	        Controller.init();
	        System.assertEquals('OCM_01_001001', controller.ConsumableorderdetailsRecords[0].orderdetails1.Name);
	        System.assertEquals('OCM_01_001002', controller.ConsumableorderdetailsRecords[1].orderdetails1.Name);
	        System.assertEquals('OCM_01_001003', controller.ConsumableorderdetailsRecordsError[0].orderdetails2.Name);
    	}
    }
}