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  }