github.com/gophercloud/gophercloud@v1.11.0/openstack/sharedfilesystems/v2/snapshots/testing/request_test.go (about)

     1  package testing
     2  
     3  import (
     4  	"testing"
     5  	"time"
     6  
     7  	"github.com/gophercloud/gophercloud/openstack/sharedfilesystems/v2/snapshots"
     8  	th "github.com/gophercloud/gophercloud/testhelper"
     9  	"github.com/gophercloud/gophercloud/testhelper/client"
    10  )
    11  
    12  func TestCreate(t *testing.T) {
    13  	th.SetupHTTP()
    14  	defer th.TeardownHTTP()
    15  
    16  	MockCreateResponse(t)
    17  
    18  	options := &snapshots.CreateOpts{ShareID: shareID, Name: "test snapshot", Description: "test description"}
    19  	n, err := snapshots.Create(client.ServiceClient(), options).Extract()
    20  
    21  	th.AssertNoErr(t, err)
    22  	th.AssertEquals(t, n.Name, "test snapshot")
    23  	th.AssertEquals(t, n.Description, "test description")
    24  	th.AssertEquals(t, n.ShareProto, "NFS")
    25  	th.AssertEquals(t, n.ShareSize, 1)
    26  	th.AssertEquals(t, n.Size, 1)
    27  }
    28  
    29  func TestUpdate(t *testing.T) {
    30  	th.SetupHTTP()
    31  	defer th.TeardownHTTP()
    32  
    33  	MockUpdateResponse(t)
    34  
    35  	name := "my_new_test_snapshot"
    36  	description := ""
    37  	options := &snapshots.UpdateOpts{
    38  		DisplayName:        &name,
    39  		DisplayDescription: &description,
    40  	}
    41  	n, err := snapshots.Update(client.ServiceClient(), snapshotID, options).Extract()
    42  
    43  	th.AssertNoErr(t, err)
    44  	th.AssertEquals(t, n.Name, "my_new_test_snapshot")
    45  	th.AssertEquals(t, n.Description, "")
    46  }
    47  
    48  func TestDelete(t *testing.T) {
    49  	th.SetupHTTP()
    50  	defer th.TeardownHTTP()
    51  
    52  	MockDeleteResponse(t)
    53  
    54  	result := snapshots.Delete(client.ServiceClient(), snapshotID)
    55  	th.AssertNoErr(t, result.Err)
    56  }
    57  
    58  func TestGet(t *testing.T) {
    59  	th.SetupHTTP()
    60  	defer th.TeardownHTTP()
    61  
    62  	MockGetResponse(t)
    63  
    64  	s, err := snapshots.Get(client.ServiceClient(), snapshotID).Extract()
    65  	th.AssertNoErr(t, err)
    66  	th.AssertDeepEquals(t, s, &snapshots.Snapshot{
    67  		ID:          snapshotID,
    68  		Name:        "new_app_snapshot",
    69  		Description: "",
    70  		ShareID:     "19865c43-3b91-48c9-85a0-7ac4d6bb0efe",
    71  		ShareProto:  "NFS",
    72  		ShareSize:   1,
    73  		Size:        1,
    74  		Status:      "available",
    75  		ProjectID:   "16e1ab15c35a457e9c2b2aa189f544e1",
    76  		CreatedAt:   time.Date(2019, time.January, 06, 11, 11, 02, 0, time.UTC),
    77  		Links: []map[string]string{
    78  			{
    79  				"href": "http://172.18.198.54:8786/v2/16e1ab15c35a457e9c2b2aa189f544e1/snapshots/bc082e99-3bdb-4400-b95e-b85c7a41622c",
    80  				"rel":  "self",
    81  			},
    82  			{
    83  				"href": "http://172.18.198.54:8786/16e1ab15c35a457e9c2b2aa189f544e1/snapshots/bc082e99-3bdb-4400-b95e-b85c7a41622c",
    84  				"rel":  "bookmark",
    85  			},
    86  		},
    87  	})
    88  }
    89  
    90  func TestListDetail(t *testing.T) {
    91  	th.SetupHTTP()
    92  	defer th.TeardownHTTP()
    93  
    94  	MockListDetailResponse(t)
    95  
    96  	allPages, err := snapshots.ListDetail(client.ServiceClient(), &snapshots.ListOpts{}).AllPages()
    97  
    98  	th.AssertNoErr(t, err)
    99  
   100  	actual, err := snapshots.ExtractSnapshots(allPages)
   101  	th.AssertNoErr(t, err)
   102  
   103  	th.AssertDeepEquals(t, actual, []snapshots.Snapshot{
   104  		{
   105  			ID:          snapshotID,
   106  			Name:        "new_app_snapshot",
   107  			Description: "",
   108  			ShareID:     "19865c43-3b91-48c9-85a0-7ac4d6bb0efe",
   109  			ShareProto:  "NFS",
   110  			ShareSize:   1,
   111  			Size:        1,
   112  			Status:      "available",
   113  			ProjectID:   "16e1ab15c35a457e9c2b2aa189f544e1",
   114  			CreatedAt:   time.Date(2019, time.January, 06, 11, 11, 02, 0, time.UTC),
   115  			Links: []map[string]string{
   116  				{
   117  					"href": "http://172.18.198.54:8786/v2/16e1ab15c35a457e9c2b2aa189f544e1/snapshots/bc082e99-3bdb-4400-b95e-b85c7a41622c",
   118  					"rel":  "self",
   119  				},
   120  				{
   121  					"href": "http://172.18.198.54:8786/16e1ab15c35a457e9c2b2aa189f544e1/snapshots/bc082e99-3bdb-4400-b95e-b85c7a41622c",
   122  					"rel":  "bookmark",
   123  				},
   124  			},
   125  		},
   126  	})
   127  }
   128  
   129  func TestResetStatusSuccess(t *testing.T) {
   130  	th.SetupHTTP()
   131  	defer th.TeardownHTTP()
   132  
   133  	MockResetStatusResponse(t)
   134  
   135  	c := client.ServiceClient()
   136  
   137  	err := snapshots.ResetStatus(c, snapshotID, &snapshots.ResetStatusOpts{Status: "error"}).ExtractErr()
   138  	th.AssertNoErr(t, err)
   139  }
   140  
   141  func TestForceDeleteSuccess(t *testing.T) {
   142  	th.SetupHTTP()
   143  	defer th.TeardownHTTP()
   144  
   145  	MockForceDeleteResponse(t)
   146  
   147  	c := client.ServiceClient()
   148  
   149  	err := snapshots.ForceDelete(c, snapshotID).ExtractErr()
   150  	th.AssertNoErr(t, err)
   151  }