@@ -859,7 +859,70 @@ var _ = Describe("Start", func() {
859859 })
860860 })
861861
862- Context ("arg is an unsupported service" , func () {
862+ Context ("arg is multiple services" , func () {
863+ It ("deploys all the specified services" , func () {
864+ if runtime .GOOS == "darwin" {
865+ mockUI .EXPECT ().Say ("Installing cfdevd network helper..." )
866+ mockCFDevD .EXPECT ().Install ()
867+ }
868+
869+ gomock .InOrder (
870+ mockToggle .EXPECT ().SetProp ("type" , "cf" ),
871+ mockSystemProfiler .EXPECT ().GetAvailableMemory ().Return (uint64 (111 ), nil ),
872+ mockSystemProfiler .EXPECT ().GetTotalMemory ().Return (uint64 (222 ), nil ),
873+ mockHost .EXPECT ().CheckRequirements (),
874+ mockHypervisor .EXPECT ().IsRunning ("cfdev" ).Return (false , nil ),
875+ mockStop .EXPECT ().RunE (nil , nil ),
876+ mockEnv .EXPECT ().CreateDirs (),
877+
878+ mockHostNet .EXPECT ().AddLoopbackAliases ("some-bosh-director-ip" , "some-cf-router-ip" ),
879+ mockUI .EXPECT ().Say ("Downloading Resources..." ),
880+ mockCache .EXPECT ().Sync (resource.Catalog {
881+ Items : []resource.Item {
882+ {Name : "some-item" },
883+ {Name : "cfdev-deps.tgz" },
884+ },
885+ }),
886+ mockUI .EXPECT ().Say ("Setting State..." ),
887+ mockEnv .EXPECT ().SetupState (),
888+ mockMetadataReader .EXPECT ().Read (filepath .Join (cacheDir , "metadata.yml" )).Return (metadata , nil ),
889+
890+ mockAnalyticsClient .EXPECT ().PromptOptInIfNeeded ("" ),
891+ mockAnalyticsClient .EXPECT ().Event (cfanalytics .START_BEGIN , map [string ]interface {}{
892+ "total memory" : uint64 (222 ),
893+ "available memory" : uint64 (111 ),
894+ }),
895+ mockAnalyticsClient .EXPECT ().Event (cfanalytics .SELECTED_SERVICE , map [string ]interface {}{"services_requested" : "some-service-flagname,some-other-service-flagname" }),
896+ mockSystemProfiler .EXPECT ().GetAvailableMemory ().Return (uint64 (10000 ), nil ),
897+ mockUI .EXPECT ().Say ("Creating the VM..." ),
898+ mockHypervisor .EXPECT ().CreateVM (hypervisor.VM {
899+ Name : "cfdev" ,
900+ CPUs : 7 ,
901+ MemoryMB : 8765 ,
902+ }),
903+ mockUI .EXPECT ().Say ("Starting VPNKit..." ),
904+ mockVpnKit .EXPECT ().Start (),
905+ mockVpnKit .EXPECT ().Watch (localExitChan ),
906+ mockUI .EXPECT ().Say ("Starting the VM..." ),
907+ mockHypervisor .EXPECT ().Start ("cfdev" ),
908+ mockUI .EXPECT ().Say ("Waiting for the VM..." ),
909+ mockProvisioner .EXPECT ().Ping (),
910+ mockProvision .EXPECT ().Execute (start.Args {Cpus : 7 , Mem : 0 , DeploySingleService : "some-service-flagname,some-other-service-flagname" }),
911+
912+ mockToggle .EXPECT ().Enabled ().Return (true ),
913+ mockAnalyticsD .EXPECT ().Start (),
914+ mockAnalyticsClient .EXPECT ().Event (cfanalytics .START_END ),
915+ )
916+
917+ Expect (startCmd .Execute (start.Args {
918+ Cpus : 7 ,
919+ Mem : 0 ,
920+ DeploySingleService : "some-service-flagname,some-other-service-flagname" ,
921+ })).To (Succeed ())
922+ })
923+ })
924+
925+ Context ("one of the args is an unsupported service" , func () {
863926 It ("returns an error message and does not execute start command" , func () {
864927 if runtime .GOOS == "darwin" {
865928 mockUI .EXPECT ().Say ("Installing cfdevd network helper..." )
@@ -897,7 +960,7 @@ var _ = Describe("Start", func() {
897960 Expect (startCmd .Execute (start.Args {
898961 Cpus : 7 ,
899962 Mem : 6666 ,
900- DeploySingleService : "non-existent-service" ,
963+ DeploySingleService : "some-service-flagname, non-existent-service" ,
901964 }).Error ()).To (ContainSubstring ("is not supported" ))
902965 })
903966 })
0 commit comments