4
4
"fmt"
5
5
"os"
6
6
"reflect"
7
+ "sort"
7
8
"strings"
8
9
"testing"
9
10
@@ -464,11 +465,11 @@ func TestRun(t *testing.T) {
464
465
tests := []struct {
465
466
name string
466
467
config * AppConfig
467
- expectedRes map [string ]string
468
+ expected map [string ][ ]string
468
469
expectedErr error
469
470
}{
470
471
{
471
- name : "" ,
472
+ name : "successful ruby app generation " ,
472
473
config : & AppConfig {
473
474
SourceRepositories : util.StringList {"https://github.com/openshift/ruby-hello-world" },
474
475
@@ -493,53 +494,52 @@ func TestRun(t *testing.T) {
493
494
osclient : & client.Fake {},
494
495
originNamespace : "default" ,
495
496
},
496
- expectedRes : map [string ]string {
497
- "imageStream" : "ruby-hello-world" ,
498
- "buildConfig" : "ruby-hello-world" ,
499
- "deploymentConfig" : "ruby-hello-world" ,
500
- "service" : "ruby-hello-world" },
497
+ expected : map [string ][]string {
498
+ "imageStream" : {"ruby-hello-world" , "ruby-20-centos7" },
499
+ "buildConfig" : {"ruby-hello-world" },
500
+ "deploymentConfig" : {"ruby-hello-world" },
501
+ "service" : {"ruby-hello-world" },
502
+ },
501
503
expectedErr : nil ,
502
504
},
503
505
}
504
506
505
507
for _ , test := range tests {
506
508
res , err := test .config .Run (os .Stdout )
507
509
if err != test .expectedErr {
508
- t .Errorf ("Error mismatch! Expected %v, got %v" , test .expectedErr , err )
510
+ t .Errorf ("%s: Error mismatch! Expected %v, got %v" , test . name , test .expectedErr , err )
509
511
continue
510
512
}
511
- var object , objectName string
513
+ got := map [ string ][] string {}
512
514
for _ , obj := range res .List .Items {
513
- var unknown bool
514
515
switch tp := obj .(type ) {
515
516
case * buildapi.BuildConfig :
516
- object = "buildConfig"
517
- objectName = tp .Name
517
+ got ["buildConfig" ] = append (got ["buildConfig" ], tp .Name )
518
518
case * kapi.Service :
519
- object = "service"
520
- objectName = tp .Name
519
+ got ["service" ] = append (got ["service" ], tp .Name )
521
520
case * imageapi.ImageStream :
522
- object = "imageStream"
523
- objectName = tp .Name
521
+ got ["imageStream" ] = append (got ["imageStream" ], tp .Name )
524
522
case * deploy.DeploymentConfig :
525
- object = "deploymentConfig"
526
- objectName = tp .Name
527
- default :
528
- t .Errorf ("Unknown resource type" )
529
- unknown = true
523
+ got ["deploymentConfig" ] = append (got ["deploymentConfig" ], tp .Name )
530
524
}
525
+ }
531
526
532
- if unknown {
533
- continue
534
- }
527
+ if len (test .expected ) != len (got ) {
528
+ t .Errorf ("%s: Resource kind size mismatch! Expected %d, got %d" , test .name , len (test .expected ), len (got ))
529
+ continue
530
+ }
535
531
536
- name , ok := test .expectedRes [object ]
532
+ for k , exp := range test .expected {
533
+ g , ok := got [k ]
537
534
if ! ok {
538
- t .Errorf ("Expected %s object, but didn't find one" , object )
539
- continue
535
+ t .Errorf ("%s: Didn't find expected kind %s" , test .name , k )
540
536
}
541
- if name != objectName {
542
- t .Errorf ("Expected object name %s, got %s" , name , objectName )
537
+
538
+ sort .Strings (g )
539
+ sort .Strings (exp )
540
+
541
+ if ! reflect .DeepEqual (g , exp ) {
542
+ t .Errorf ("%s: Resource names mismatch! Expected %v, got %v" , test .name , exp , g )
543
543
continue
544
544
}
545
545
}
0 commit comments