15
15
package scaffold
16
16
17
17
import (
18
- "fmt"
19
18
"io/ioutil"
20
19
"os"
20
+ "path/filepath"
21
21
"testing"
22
22
23
23
"github.com/operator-framework/operator-sdk/internal/util/diffutil"
@@ -90,60 +90,35 @@ func TestRoleCustomRules(t *testing.T) {
90
90
91
91
func TestMergeRoleForResource (t * testing.T ) {
92
92
clusterRoleFilePath1 := "./testdata/testroles/valid_clusterrole"
93
- clusterRoleFile1 := clusterRoleFilePath1 + "/deploy/role.yaml"
94
- if err := ioutil .WriteFile (clusterRoleFile1 , []byte (clusterRole ), fileutil .DefaultFileMode ); err != nil {
95
- fmt .Printf ("failed to instantiate %v: %v" , clusterRoleFile1 , err )
96
- }
97
- defer remove (clusterRoleFile1 )
98
-
99
93
roleFilePath1 := "./testdata/testroles/valid_role1"
100
- absRoleFile1 := roleFilePath1 + "/deploy/role.yaml"
101
- if err := ioutil .WriteFile (absRoleFile1 , []byte (roleFile1 ), fileutil .DefaultFileMode ); err != nil {
102
- fmt .Printf ("failed to instantiate %v: %v" , absRoleFile1 , err )
103
- }
104
- defer remove (absRoleFile1 )
105
-
106
94
roleFilePath2 := "./testdata/testroles/valid_role2"
107
- absRoleFile2 := roleFilePath2 + "/deploy/role.yaml"
108
- if err := ioutil .WriteFile (absRoleFile2 , []byte (roleFile2 ), fileutil .DefaultFileMode ); err != nil {
109
- fmt .Printf ("failed to instantiate %v: %v" , absRoleFile2 , err )
110
- }
111
- defer remove (absRoleFile2 )
112
-
113
95
roleFilePath3 := "./testdata/testroles/valid_role3"
114
- absRoleFile3 := roleFilePath3 + "/deploy/role.yaml"
115
- if err := ioutil .WriteFile (absRoleFile3 , []byte (roleFile3 ), fileutil .DefaultFileMode ); err != nil {
116
- fmt .Printf ("failed to instantiate %v: %v" , absRoleFile3 , err )
117
- }
118
- defer remove (absRoleFile3 )
119
-
120
96
roleFilePath4 := "./testdata/testroles/valid_role4"
121
- absRoleFile4 := roleFilePath4 + "/deploy/role.yaml"
122
- if err := ioutil .WriteFile (absRoleFile4 , []byte (roleFile3 ), fileutil .DefaultFileMode ); err != nil {
123
- fmt .Printf ("failed to instantiate %v: %v" , absRoleFile4 , err )
124
- }
125
- defer remove (absRoleFile4 )
126
-
127
97
roleFilePath5 := "./testdata/testroles/valid_role5"
128
- absRoleFile5 := roleFilePath5 + "/deploy/role.yaml"
129
- if err := ioutil .WriteFile (absRoleFile5 , []byte (roleFile3 ), fileutil .DefaultFileMode ); err != nil {
130
- fmt .Printf ("failed to instantiate %v: %v" , absRoleFile5 , err )
98
+ roleFilePath6 := "./testdata/testroles/valid_role6"
99
+
100
+ testFiles := map [string ]string {
101
+ "./testdata/testroles/valid_clusterrole/deploy/role.yaml" : clusterRole ,
102
+ "./testdata/testroles/valid_role1/deploy/role.yaml" : roleFile1 ,
103
+ "./testdata/testroles/valid_role2/deploy/role.yaml" : roleFile2 ,
104
+ "./testdata/testroles/valid_role3/deploy/role.yaml" : roleFile3 ,
105
+ "./testdata/testroles/valid_role4/deploy/role.yaml" : roleFile3 ,
106
+ "./testdata/testroles/valid_role5/deploy/role.yaml" : roleFile3 ,
107
+ "./testdata/testroles/valid_role6/deploy/role.yaml" : roleFile3 ,
131
108
}
132
- defer remove (absRoleFile5 )
133
109
134
- roleFilePath6 := "./testdata/testroles/valid_role6"
135
- absRoleFile6 := roleFilePath6 + "/deploy/role.yaml"
136
- if err := ioutil .WriteFile (absRoleFile6 , []byte (roleFile3 ), fileutil .DefaultFileMode ); err != nil {
137
- fmt . Printf ( "failed to instantiate %v: %v" , absRoleFile6 , err )
110
+ for path , content := range testFiles {
111
+ assert . NoError ( t , os . MkdirAll ( filepath . Dir ( path ), 0755 ))
112
+ assert . NoError ( t , ioutil .WriteFile (path , []byte (content ), fileutil .DefaultFileMode ))
113
+ defer remove ( filepath . Dir ( path ) )
138
114
}
139
- defer remove (absRoleFile6 )
140
115
141
116
testCases := []struct {
142
117
name string
143
118
absProjectPath string
144
119
r * Resource
145
120
roleScaffold * Role
146
- expError error
121
+ expError bool
147
122
existingRole string
148
123
mergedRole string
149
124
}{
@@ -472,6 +447,7 @@ func TestMergeRoleForResource(t *testing.T) {
472
447
},
473
448
{
474
449
name : "Invalid ClusterRole" ,
450
+ expError : true ,
475
451
absProjectPath : roleFilePath1 ,
476
452
r : & Resource {
477
453
APIVersion : "charts.helm.k8s.io/v1alpha1" ,
@@ -499,6 +475,7 @@ func TestMergeRoleForResource(t *testing.T) {
499
475
},
500
476
{
501
477
name : "Empty CustomRules" ,
478
+ expError : true ,
502
479
absProjectPath : "./testdata/testroles/invalid_role" ,
503
480
mergedRole : "" ,
504
481
r : & Resource {
@@ -514,6 +491,7 @@ func TestMergeRoleForResource(t *testing.T) {
514
491
},
515
492
{
516
493
name : "Empty role.yaml file" ,
494
+ expError : true ,
517
495
absProjectPath : "./testdata/testroles/invalid_role" ,
518
496
mergedRole : "" ,
519
497
r : & Resource {
@@ -536,22 +514,20 @@ func TestMergeRoleForResource(t *testing.T) {
536
514
}
537
515
for _ , tc := range testCases {
538
516
t .Run (tc .name , func (t * testing.T ) {
539
- actualErr := MergeRoleForResource (tc .r , tc .absProjectPath , * tc .roleScaffold )
517
+ err := MergeRoleForResource (tc .r , tc .absProjectPath , * tc .roleScaffold )
518
+ if tc .expError {
519
+ assert .Error (t , err )
520
+ return
521
+ }
522
+ assert .NoError (t , err )
523
+
540
524
absFilePath := tc .absProjectPath + "/deploy/role.yaml"
541
525
actualMergedRoleYAML , err := ioutil .ReadFile (absFilePath )
542
- if err != nil {
543
- fmt .Printf ("failed to read actualMergedrole %v: %v" , absFilePath , err )
544
- }
526
+ assert .NoError (t , err )
545
527
expectedMergedRoleYAML , err := ioutil .ReadFile (tc .mergedRole )
546
- if err != nil {
547
- fmt .Printf ("failed to read expectedMergedrole %v: %v" , tc .mergedRole , err )
548
- }
528
+ assert .NoError (t , err )
549
529
550
- if actualErr != nil {
551
- assert .NotNil (t , actualErr )
552
- } else {
553
- assert .Equal (t , string (expectedMergedRoleYAML ), string (actualMergedRoleYAML ))
554
- }
530
+ assert .Equal (t , string (expectedMergedRoleYAML ), string (actualMergedRoleYAML ))
555
531
})
556
532
}
557
533
}
0 commit comments