/** * @author shentianyi@sohobb.jp * @date 2017.08.30 * * @description This class contains unit tests for validating * the behavior of FixtureSetManageController.cls * * This class includes four Unit test method that * verify whether a particular piece of code is working properly. * * This class has the 90% coverage to the FixtureSetManageController.cls */ @isTest private class FixtureSetManageControllerTest { /** * @description データ作成 */ @testSetup static void setupTestData() { List productData = new List(); for (Integer i = 1; i <= 25; i++) { productData.add(new Product2(Name = 'Test_' + i, isActive = true, Asset_Model_No__c = 'M_' + i)); if (i <= 15) { productData.add(new Product2(Name = 'Star_' + i, isActive = true, Asset_Model_No__c = 'F_' + i)); } } insert productData; } static Fixture_Set__c fixtureSet { get { if(fixtureSet == null) { fixtureSet = new Fixture_Set__c(Name='testFixtureSet01'); insert fixtureSet; } return fixtureSet; }} static String recid { get { return 'pt_recid='+fixtureSet.Id; }} /** * @description Initテスト * It is mainly to test whether error occurs when it init */ static testMethod void unitTestInit() { PageReference pageRef = new PageReference('/apex/FixtureSetManage?'+recid); Test.setCurrentPage(pageRef); FixtureSetManageController mockPage = new FixtureSetManageController(); CreateRelationListPagingCmpCtrl cmp = new CreateRelationListPagingCmpCtrl(); cmp.pageController = mockPage; mockPage.myComponentController.init(); Test.startTest(); mockPage.init(); Test.stopTest(); System.debug('init Success'); } /** * @description Searchテスト * It is mainly to test whether it can search the specific data */ static testMethod void unitTestsearchOpp() { PageReference pageRef = new PageReference('/apex/FixtureSetManage?'+recid); Test.setCurrentPage(pageRef); FixtureSetManageController mockPage = new FixtureSetManageController(); CreateRelationListPagingCmpCtrl cmp = new CreateRelationListPagingCmpCtrl(); cmp.pageController = mockPage; mockPage.myComponentController.init(); Test.startTest(); mockPage.assetModelNo = 'M'; mockPage.searchOpp(); Test.stopTest(); System.assertEquals(25, mockPage.getMyComponentController().recordAllCount); System.debug('searchOpp Success'); } /** * @description Cancelテスト * It is mainly to test whether error occurs when it cancel */ static testMethod void unitTestcancel() { PageReference pageRef = new PageReference('/apex/FixtureSetManage?'+recid); Test.setCurrentPage(pageRef); FixtureSetManageController mockPage = new FixtureSetManageController(); CreateRelationListPagingCmpCtrl cmp = new CreateRelationListPagingCmpCtrl(); cmp.pageController = mockPage; mockPage.myComponentController.init(); Test.startTest(); mockPage.cancel(); Test.stopTest(); System.debug('cancel Success'); } /** * @description Saveテスト * It is mainly to test whether view is correct * when the view is updated */ static testMethod void unitTestsave() { PageReference pageRef = new PageReference('/apex/FixtureSetManage?'+recid); Test.setCurrentPage(pageRef); FixtureSetManageController mockPage = new FixtureSetManageController(); mockPage.myComponentController = new CreateRelationListPagingCmpCtrl(); mockPage.myComponentController.pageController = mockPage; mockPage.myComponentController.init(); //System.debug('ParentId:'+mockPage.parentId+':'+mockPage.myComponentController.pageController.parentId); list listProduct = [Select Id,Name,Asset_Model_No__c From Product2 Where Name Like 'Test%']; /** * @description データ作成 */ List testdata = new List(); testdata.add(new Fixture_Set_Detail__c(SortInt__c = 1, Name_CHN_Created__c = 'MTJ_1' , Is_Body__c = true, Is_Optional__c = false, Quantity__c = 1 , Is_OneToOne__c = false, Fixture_Set__c = fixtureSet.Id , Product2__c = listProduct[0].Id , UniqueKey__c = fixtureSet.Id + ':' + listProduct[0].Id)); for (Integer i = 2; i <= 4; i++) { testdata.add(new Fixture_Set_Detail__c(SortInt__c = i, Name_CHN_Created__c = 'MTJ_' + i , Is_Body__c = false, Is_Optional__c = true, Quantity__c = 2 , Is_OneToOne__c = false, Fixture_Set__c = fixtureSet.Id , Product2__c = listProduct[i-1].Id , UniqueKey__c = fixtureSet.Id + ':' + listProduct[i-1].Id)); } for (Integer i = 5; i <= 7; i++) { testdata.add(new Fixture_Set_Detail__c(SortInt__c = i, Name_CHN_Created__c = 'MTJ_' + i , Is_Body__c = false, Is_Optional__c = true, Quantity__c = 1 , Is_OneToOne__c = true,Fixture_Set__c = fixtureSet.Id , Product2__c = listProduct[i-1].Id , UniqueKey__c = fixtureSet.Id + ':' + listProduct[i-1].Id)); } insert testdata; mockPage.init(); mockPage.assetModelNo = 'M'; mockPage.searchOpp(); // mockPage.family = 'M'; mockPage.category2 = 'M'; mockPage.category3 = 'M'; mockPage.category4 = 'M'; mockPage.category5 = 'M'; mockPage.assetModelNo = 'M'; mockPage.multiStatus = 'M'; mockPage.getSqlWhereStr(); //system.assert(mockPage.viewList.size()==0,'Fixture_Set_Detail is blank.'); Test.startTest(); for (Integer i = 0; i <= 6; i++) { mockPage.viewList[i].check = true; } mockPage.saveType = '1'; mockPage.save(); mockPage.viewList[2].check = false; mockPage.viewList[4].check = false; mockPage.saveType = '2'; mockPage.save(); mockPage.viewList[3].check = false; mockPage.saveType = '98'; mockPage.save(); Test.stopTest(); System.assertEquals(true, mockPage.viewList[1].check); System.assertEquals(false, mockPage.viewList[3].check); System.debug('save Success'); List fs = [Select Id, Name_CHN__c, Name_CHN_Created__c From Fixture_Set_Detail__c]; System.assertEquals(fs.size(), 4); for (Fixture_Set_Detail__c fd : fs) { System.assertEquals(fd.Name_CHN__c, fd.Name_CHN_Created__c); } } }