高章伟
2022-02-18 8b5f4c6c281cfa548f92de52c8021e37aa81901e
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
/**
 * @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<Product2> productData = new List<Product2>();
        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<Product2> listProduct = [Select Id,Name,Asset_Model_No__c From Product2 Where Name Like 'Test%'];
        /**
        * @description データ作成
        */
        List<Fixture_Set_Detail__c> testdata = new List<Fixture_Set_Detail__c>();
 
        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<Fixture_Set_Detail__c> 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);
        }
        
    }
}