github.com/opentelekomcloud/gophertelekomcloud@v0.9.3/openstack/evs/v1/snapshots/testing/requests_test.go (about)

     1  package testing
     2  
     3  import (
     4  	"testing"
     5  	"time"
     6  
     7  	"github.com/opentelekomcloud/gophertelekomcloud/openstack/evs/v1/snapshots"
     8  
     9  	th "github.com/opentelekomcloud/gophertelekomcloud/testhelper"
    10  	"github.com/opentelekomcloud/gophertelekomcloud/testhelper/client"
    11  )
    12  
    13  func TestList(t *testing.T) {
    14  	th.SetupHTTP()
    15  	defer th.TeardownHTTP()
    16  
    17  	MockListResponse(t)
    18  
    19  	actual, err := snapshots.List(client.ServiceClient(), snapshots.ListOpts{})
    20  	if err != nil {
    21  		t.Errorf("Failed to extract snapshots: %v", err)
    22  	}
    23  
    24  	expected := []snapshots.Snapshot{
    25  		{
    26  			ID:          "289da7f8-6440-407c-9fb4-7db01ec49164",
    27  			Name:        "snapshot-001",
    28  			VolumeID:    "521752a6-acf6-4b2d-bc7a-119f9148cd8c",
    29  			Status:      "available",
    30  			Size:        30,
    31  			CreatedAt:   time.Date(2012, 2, 14, 20, 53, 7, 0, time.UTC),
    32  			Description: "Daily Backup",
    33  		},
    34  		{
    35  			ID:          "96c3bda7-c82a-4f50-be73-ca7621794835",
    36  			Name:        "snapshot-002",
    37  			VolumeID:    "76b8950a-8594-4e5b-8dce-0dfa9c696358",
    38  			Status:      "available",
    39  			Size:        25,
    40  			CreatedAt:   time.Date(2012, 2, 14, 20, 53, 8, 0, time.UTC),
    41  			Description: "Weekly Backup",
    42  		},
    43  	}
    44  
    45  	th.CheckDeepEquals(t, expected, actual)
    46  }
    47  
    48  func TestGet(t *testing.T) {
    49  	th.SetupHTTP()
    50  	defer th.TeardownHTTP()
    51  
    52  	MockGetResponse(t)
    53  
    54  	v, err := snapshots.Get(client.ServiceClient(), "d32019d3-bc6e-4319-9c1d-6722fc136a22")
    55  	th.AssertNoErr(t, err)
    56  
    57  	th.AssertEquals(t, v.Name, "snapshot-001")
    58  	th.AssertEquals(t, v.ID, "d32019d3-bc6e-4319-9c1d-6722fc136a22")
    59  }
    60  
    61  func TestCreate(t *testing.T) {
    62  	th.SetupHTTP()
    63  	defer th.TeardownHTTP()
    64  
    65  	MockCreateResponse(t)
    66  
    67  	options := snapshots.CreateOpts{VolumeID: "1234", Name: "snapshot-001"}
    68  	n, err := snapshots.Create(client.ServiceClient(), options)
    69  	th.AssertNoErr(t, err)
    70  
    71  	th.AssertEquals(t, n.VolumeID, "1234")
    72  	th.AssertEquals(t, n.Name, "snapshot-001")
    73  	th.AssertEquals(t, n.ID, "d32019d3-bc6e-4319-9c1d-6722fc136a22")
    74  }
    75  
    76  func TestUpdateMetadata(t *testing.T) {
    77  	th.SetupHTTP()
    78  	defer th.TeardownHTTP()
    79  
    80  	MockUpdateMetadataResponse(t)
    81  
    82  	expected := map[string]interface{}{"key": "v1"}
    83  
    84  	options := snapshots.UpdateMetadataOpts{
    85  		Metadata: map[string]interface{}{
    86  			"key": "v1",
    87  		},
    88  	}
    89  
    90  	actual, err := snapshots.UpdateMetadata(client.ServiceClient(), "123", options)
    91  	th.AssertNoErr(t, err)
    92  	th.AssertDeepEquals(t, &expected, actual)
    93  }
    94  
    95  func TestDelete(t *testing.T) {
    96  	th.SetupHTTP()
    97  	defer th.TeardownHTTP()
    98  
    99  	MockDeleteResponse(t)
   100  
   101  	res := snapshots.Delete(client.ServiceClient(), "d32019d3-bc6e-4319-9c1d-6722fc136a22")
   102  	th.AssertNoErr(t, res)
   103  }