@isTest
private class Morethan7daysAllControllerTest {
    
    static testMethod void myUnitTest() {
        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重验证'];
        Profile prof = [select Id from Profile where Name ='901_经销商社区普通权限_2重验证(ET)'];//20200916 ljh update
        
        Account myAccount2 = new Account(name='Testaccount002',Dealer_discount__c =20,RecordTypeId = rectCo[0].Id,Product_Limit_Date__c = 'Test01|5|55,Test02|2|4',AgentCode_Ext__c = '9999900');
        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', UserPro_Type__c='ET', Work_Location__c='北京');
        insert MyUser_Test;
        system.runAs(MyUser_Test){
            System.Test.startTest();
            StaticParameter.EscapeConsumableOrderDetail2Trigger = true;
            Product2 prod01 = new Product2(Name='Test01',ProductCode='Test01',Asset_Model_No__c = 'Test01',SFDA_Status__c = '有効',Dealer_special_Object__c = true,SFDA_Approbation_No__c = '12124',Packing_list_manual__c = 1,SFDA_Expiration_Date__c= Date.today());
            Product2 prod02 = new Product2(Name='Test02',ProductCode='Test02',Asset_Model_No__c = 'Test02',SFDA_Status__c = '有効',Dealer_special_Object__c = true,SFDA_Approbation_No__c = '12124',Packing_list_manual__c = 1,SFDA_Expiration_Date__c= Date.today());
            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};

            Consumable_order__c createId = new Consumable_order__c();
            createId.Name = 'testMing';
            createId.Order_status__c = '批准';
            createId.Deliver_date__c = Date.today();
            createId.Dealer_Info__c = myAccount2.Id;
            createId.RecordTypeid = System.Label.RT_ConOrder_Delivery;
            createId.Order_type__c = '订单';
            createId.Order_ProType__c = 'ET';
            createId.Dealer_Info__c = myAccount2.Id;
            createId.Delivery_detail_count__c = 5;
            insert  createId;
            //pro1 盒 在库
            Consumable_order_details2__c createDetail = new Consumable_order_details2__c();
            createDetail = new Consumable_order_details2__c();
            createDetail.Consumable_Product__c = pro1.id;
            createDetail.Asset_Model_No__c     = 'Test01';
            createDetail.Consumable_order_minor__c =  createId.id;
            createDetail.Consumable_Arrived_order__c = createId.id;
            createDetail.RecordTypeid = System.Label.RT_ConOrderDetail2_Delivery;
            createDetail.Asset_Model_No__c         = pro1.Asset_Model_No__c;
            createDetail.Bar_Code__c = '123';
            createDetail.Box_Piece__c ='盒';
            createDetail.Arrive_date__c            = Date.today();
            insert createDetail;
            Consumable_order_details2__c createDetailpro1 = new Consumable_order_details2__c();
            createDetailpro1.Consumable_Product__c = pro1.id;
            createDetailpro1.Asset_Model_No__c     = 'Test02';
            createDetailpro1.Consumable_order_minor__c =  createId.id;
            createDetailpro1.Consumable_Arrived_order__c = createId.id;
            createDetailpro1.RecordTypeid = System.Label.RT_ConOrderDetail2_Delivery;
            createDetailpro1.Asset_Model_No__c         = pro1.Asset_Model_No__c;
            createDetailpro1.Bar_Code__c = '12322';
            createDetailpro1.Box_Piece__c ='盒';
            createDetailpro1.Arrive_date__c            = Date.today();
            insert createDetailpro1;
            //pro1 个 在库
            Consumable_order_details2__c createDetailPiece1 = new Consumable_order_details2__c();
            createDetailPiece1.Consumable_Product__c = pro1.id;
            createDetailPiece1.Asset_Model_No__c     = 'Test03';
            createDetailPiece1.Consumable_order_minor__c =  createId.id;
            createDetailPiece1.Consumable_Arrived_order__c = createId.id;
            createDetailPiece1.RecordTypeid = System.Label.RT_ConOrderDetail2_Delivery;
            createDetailPiece1.Asset_Model_No__c         = pro1.Asset_Model_No__c;
            createDetailPiece1.Bar_Code__c = '23456';
            createDetailPiece1.Box_Piece__c ='个';
            createDetailPiece1.Arrive_date__c            = Date.today();
            insert createDetailPiece1;
            Consumable_order_details2__c createDetailPiece2 = new Consumable_order_details2__c();
            createDetailPiece2.Consumable_Product__c = pro1.id;
            createDetailPiece2.Asset_Model_No__c     = 'Test04';
            createDetailPiece2.Consumable_order_minor__c =  createId.id;
            createDetailPiece2.Consumable_Arrived_order__c = createId.id;
            createDetailPiece2.RecordTypeid = System.Label.RT_ConOrderDetail2_Delivery;
            createDetailPiece2.Asset_Model_No__c         = pro1.Asset_Model_No__c;
            createDetailPiece2.Bar_Code__c = '122345';
            createDetailPiece2.Box_Piece__c ='个';
            createDetailPiece2.Arrive_date__c            = Date.today();
            insert createDetailPiece2;

            //pro1 盒 在库 过期
            Consumable_order_details2__c createDetail2 = new Consumable_order_details2__c();
            createDetail2.Name = 'OCM_01_001';
            createDetail2.Consumable_Product__c = pro2.id;
            createDetail2.Asset_Model_No__c     = 'Test02';
            createDetail2.Consumable_order_minor__c =  createId.id;
            createDetail2.RecordTypeid = System.Label.RT_ConOrderDetail2_Delivery;
            createDetail2.Asset_Model_No__c         = pro2.Asset_Model_No__c;
            createDetail2.Bar_Code__c = '1234';
            createDetail2.Box_Piece__c ='盒';
            createDetail2.Sterilization_limit__c =Date.today();
            createDetail2.Deliver_date__c = Date.today().addDays(-10);
            insert createDetail2;
            PageReference page = new PageReference('/apex/TopPage');
            System.Test.setCurrentPage(page);
            TopPageController lPCTest = new TopPageController();
            lPCTest.pagesize = 1;
            Consumable_Orderdetails__c conOrderDetail1 = new Consumable_Orderdetails__c();
            conOrderDetail1.Consumable_count__c = 10;
            conOrderDetail1.Consumable_Arrivecount__c = 5;
            conOrderDetail1.Consumable_product__c = pro2.id;
            conOrderDetail1.Consumable_order__c = createId.Id;
            insert conOrderDetail1;

            Consumable_Orderdetails__c conOrderDetail2 = new Consumable_Orderdetails__c();
            conOrderDetail2.Consumable_product__c = pro2.id;
            conOrderDetail2.Consumable_order__c = createId.Id;
            insert conOrderDetail2;

            Morethan7daysAllController haha = new Morethan7daysAllController();
            haha.init();

            // PageReference page = new PageReference('/customer/Morethan7daysAll?type=all');
            // page.setRedirect(true);
            // System.Test.setCurrentPage(page);

            
            // ConsumableAllOtherDetController conAllOther = new ConsumableAllOtherDetController();
            // conAllOther.init();
            // ConsumableAllArrDetController conAllArr = new ConsumableAllArrDetController();
            // conAllArr.init();
            // ConsumableAllNotArrDetController conAllNotArr = new ConsumableAllNotArrDetController();
            // conAllNotArr.init();
            // ConsumableAllDetController conAll = new ConsumableAllDetController();
            // conAll.init();
            // lPCTest.init();
            // lPCTest.SortLimited();
            // lPCTest.refreshPageSize();
            // lPCTest.canMove();
            // lPCTest.moveToNext();
            // lPCTest.moveToPrevious();
            // lPCTest.moveToLast();
            System.Test.stopTest();
            
        }
    }
    
}