@@ -27,18 +27,25 @@ var _ = Describe("Place", func() {
2727 slCommand * metadata.SoftlayerCommand
2828 OrderManager managers.OrderManager
2929 fakeOrderManager * testhelpers.FakeOrderManager
30+ fakeHandler * testhelpers.FakeTransportHandler
3031 )
3132 BeforeEach (func () {
3233 filenames := []string {"getDatacenters_1" }
3334 fakeUI = terminal .NewFakeUI ()
3435 fakeSession = testhelpers .NewFakeSoftlayerSession (filenames )
36+ fakeHandler = testhelpers .GetSessionHandler (fakeSession )
3537 OrderManager = managers .NewOrderManager (fakeSession )
3638 fakeOrderManager = new (testhelpers.FakeOrderManager )
3739 slCommand = metadata .NewSoftlayerCommand (fakeUI , fakeSession )
3840 cliCommand = order .NewPlaceCommand (slCommand )
3941 cliCommand .Command .PersistentFlags ().Var (cliCommand .OutputFlag , "output" , "--output=JSON for json output." )
4042 cliCommand .OrderManager = OrderManager
4143 })
44+ AfterEach (func () {
45+ // Clear API call logs and any errors that might have been set after every test
46+ fakeHandler .ClearApiCallLogs ()
47+ fakeHandler .ClearErrors ()
48+ })
4249
4350 Describe ("order verify" , func () {
4451 for k , _ := range order .TYPEMAP {
@@ -236,4 +243,34 @@ var _ = Describe("Place", func() {
236243 })
237244 })
238245 })
246+ Describe ("softlayer-cli/issues/863" , func () {
247+ BeforeEach (func () {
248+ fakeHandler .ClearApiCallLogs ()
249+ fakeHandler .SetFileNames ([]string {"getItems-835" , "getDatacenters_mad02" })
250+ })
251+ It ("Finds the correct price IDs" , func () {
252+ err := testhelpers .RunCobraCommand (
253+ cliCommand .Command ,
254+ "PUBLIC_CLOUD_SERVER" , "MADRID02" , "1_GBPS_PRIVATE_NETWORK_UPLINK" , "1_IP_ADDRESS" ,
255+ "GUEST_DISK_100_GB_LOCAL" , "OS_RED_HAT_ENTERPRISE_LINUX_9_X_MINIMAL_INSTALL_64_BIT" ,
256+ "MONITORING_HOST_PING" , "NOTIFICATION_EMAIL_AND_TICKET" , "AUTOMATED_NOTIFICATION" ,
257+ "UNLIMITED_SSL_VPN_USERS_1_PPTP_VPN_USER_PER_ACCOUNT" , "REBOOT_REMOTE_CONSOLE" , "BANDWIDTH_0_GB" ,
258+ "--billing=monthly" ,
259+ `--extras={"virtualGuests":[{"hostname":"testServer","domain":"ibm.com"}]}` ,
260+ "--complex-type=SoftLayer_Container_Product_Order_Virtual_Guest" ,
261+ "--preset=BL2_8x32x100" , "--verify" ,
262+ )
263+ Expect (err ).NotTo (HaveOccurred ())
264+
265+ callLog := fakeHandler .ApiCallLogs
266+ Expect (len (callLog )).To (Equal (9 ))
267+ fmt .Printf (callLog [8 ].String ())
268+ Expect (callLog [8 ].String ()).To (Equal (`SoftLayer_Product_Order::verifyOrder(id=0, mask='', filter='', ` +
269+ `{"parameters":[{"complexType":"SoftLayer_Container_Product_Order_Virtual_Guest",` +
270+ `"location":"3460412","packageId":865,"presetId":785,"prices":[{"id":899},{"id":21},{"id":204637},` +
271+ `{"id":314158},{"id":55},{"id":57},{"id":58},{"id":420},{"id":905},{"id":22505}],"quantity":1,` +
272+ `"useHourlyPricing":false,"virtualGuests":[{"domain":"ibm.com","hostname":"testServer"}]}]}` ,
273+ ))
274+ })
275+ })
239276})
0 commit comments