github.com/gophercloud/gophercloud@v1.11.0/openstack/compute/v2/extensions/volumeattach/testing/requests_test.go (about) 1 package testing 2 3 import ( 4 "testing" 5 6 "github.com/gophercloud/gophercloud/openstack/compute/v2/extensions/volumeattach" 7 "github.com/gophercloud/gophercloud/pagination" 8 th "github.com/gophercloud/gophercloud/testhelper" 9 "github.com/gophercloud/gophercloud/testhelper/client" 10 ) 11 12 // FirstVolumeAttachment is the first result in ListOutput. 13 var FirstVolumeAttachment = volumeattach.VolumeAttachment{ 14 Device: "/dev/vdd", 15 ID: "a26887c6-c47b-4654-abb5-dfadf7d3f803", 16 ServerID: "4d8c3732-a248-40ed-bebc-539a6ffd25c0", 17 VolumeID: "a26887c6-c47b-4654-abb5-dfadf7d3f803", 18 } 19 20 // SecondVolumeAttachment is the first result in ListOutput. 21 var SecondVolumeAttachment = volumeattach.VolumeAttachment{ 22 Device: "/dev/vdc", 23 ID: "a26887c6-c47b-4654-abb5-dfadf7d3f804", 24 ServerID: "4d8c3732-a248-40ed-bebc-539a6ffd25c0", 25 VolumeID: "a26887c6-c47b-4654-abb5-dfadf7d3f804", 26 } 27 28 // ExpectedVolumeAttachmentSlide is the slice of results that should be parsed 29 // from ListOutput, in the expected order. 30 var ExpectedVolumeAttachmentSlice = []volumeattach.VolumeAttachment{FirstVolumeAttachment, SecondVolumeAttachment} 31 32 var iTag = "foo" 33 var iTrue = true 34 35 // CreatedVolumeAttachment is the parsed result from CreatedOutput. 36 var CreatedVolumeAttachment = volumeattach.VolumeAttachment{ 37 Device: "/dev/vdc", 38 ID: "a26887c6-c47b-4654-abb5-dfadf7d3f804", 39 ServerID: "4d8c3732-a248-40ed-bebc-539a6ffd25c0", 40 VolumeID: "a26887c6-c47b-4654-abb5-dfadf7d3f804", 41 Tag: &iTag, 42 DeleteOnTermination: &iTrue, 43 } 44 45 func TestList(t *testing.T) { 46 th.SetupHTTP() 47 defer th.TeardownHTTP() 48 49 HandleListSuccessfully(t) 50 51 serverID := "4d8c3732-a248-40ed-bebc-539a6ffd25c0" 52 53 count := 0 54 err := volumeattach.List(client.ServiceClient(), serverID).EachPage(func(page pagination.Page) (bool, error) { 55 count++ 56 actual, err := volumeattach.ExtractVolumeAttachments(page) 57 th.AssertNoErr(t, err) 58 th.CheckDeepEquals(t, ExpectedVolumeAttachmentSlice, actual) 59 60 return true, nil 61 }) 62 th.AssertNoErr(t, err) 63 th.CheckEquals(t, 1, count) 64 } 65 66 func TestCreate(t *testing.T) { 67 th.SetupHTTP() 68 defer th.TeardownHTTP() 69 70 HandleCreateSuccessfully(t) 71 72 serverID := "4d8c3732-a248-40ed-bebc-539a6ffd25c0" 73 74 actual, err := volumeattach.Create(client.ServiceClient(), serverID, volumeattach.CreateOpts{ 75 Device: "/dev/vdc", 76 VolumeID: "a26887c6-c47b-4654-abb5-dfadf7d3f804", 77 Tag: iTag, 78 DeleteOnTermination: iTrue, 79 }).Extract() 80 th.AssertNoErr(t, err) 81 th.CheckDeepEquals(t, &CreatedVolumeAttachment, actual) 82 } 83 84 func TestGet(t *testing.T) { 85 th.SetupHTTP() 86 defer th.TeardownHTTP() 87 88 HandleGetSuccessfully(t) 89 90 aID := "a26887c6-c47b-4654-abb5-dfadf7d3f804" 91 serverID := "4d8c3732-a248-40ed-bebc-539a6ffd25c0" 92 93 actual, err := volumeattach.Get(client.ServiceClient(), serverID, aID).Extract() 94 th.AssertNoErr(t, err) 95 th.CheckDeepEquals(t, &SecondVolumeAttachment, actual) 96 } 97 98 func TestDelete(t *testing.T) { 99 th.SetupHTTP() 100 defer th.TeardownHTTP() 101 102 HandleDeleteSuccessfully(t) 103 104 aID := "a26887c6-c47b-4654-abb5-dfadf7d3f804" 105 serverID := "4d8c3732-a248-40ed-bebc-539a6ffd25c0" 106 107 err := volumeattach.Delete(client.ServiceClient(), serverID, aID).ExtractErr() 108 th.AssertNoErr(t, err) 109 }