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 }