github.com/opentelekomcloud/gophertelekomcloud@v0.9.3/openstack/dns/v2/recordsets/testing/requests_test.go (about) 1 package testing 2 3 import ( 4 "testing" 5 6 "github.com/opentelekomcloud/gophertelekomcloud/openstack/dns/v2/recordsets" 7 "github.com/opentelekomcloud/gophertelekomcloud/pagination" 8 th "github.com/opentelekomcloud/gophertelekomcloud/testhelper" 9 "github.com/opentelekomcloud/gophertelekomcloud/testhelper/client" 10 ) 11 12 func TestListByZone(t *testing.T) { 13 th.SetupHTTP() 14 defer th.TeardownHTTP() 15 HandleListByZoneSuccessfully(t) 16 17 count := 0 18 err := recordsets.ListByZone(client.ServiceClient(), "2150b1bf-dee2-4221-9d85-11f7886fb15f", nil).EachPage(func(page pagination.Page) (bool, error) { 19 count++ 20 actual, err := recordsets.ExtractRecordSets(page) 21 th.AssertNoErr(t, err) 22 th.CheckDeepEquals(t, ExpectedRecordSetSlice, actual) 23 24 return true, nil 25 }) 26 th.AssertNoErr(t, err) 27 th.CheckEquals(t, 1, count) 28 } 29 30 func TestListByZoneLimited(t *testing.T) { 31 th.SetupHTTP() 32 defer th.TeardownHTTP() 33 HandleListByZoneSuccessfully(t) 34 35 count := 0 36 listOpts := recordsets.ListOpts{ 37 Limit: 1, 38 Marker: "f7b10e9b-0cae-4a91-b162-562bc6096648", 39 } 40 err := recordsets.ListByZone(client.ServiceClient(), "2150b1bf-dee2-4221-9d85-11f7886fb15f", listOpts).EachPage(func(page pagination.Page) (bool, error) { 41 count++ 42 actual, err := recordsets.ExtractRecordSets(page) 43 th.AssertNoErr(t, err) 44 th.CheckDeepEquals(t, ExpectedRecordSetSliceLimited, actual) 45 46 return true, nil 47 }) 48 th.AssertNoErr(t, err) 49 th.CheckEquals(t, 1, count) 50 } 51 52 func TestListByZoneAllPages(t *testing.T) { 53 th.SetupHTTP() 54 defer th.TeardownHTTP() 55 HandleListByZoneSuccessfully(t) 56 57 allPages, err := recordsets.ListByZone(client.ServiceClient(), "2150b1bf-dee2-4221-9d85-11f7886fb15f", nil).AllPages() 58 th.AssertNoErr(t, err) 59 allRecordSets, err := recordsets.ExtractRecordSets(allPages) 60 th.AssertNoErr(t, err) 61 th.CheckEquals(t, 2, len(allRecordSets)) 62 } 63 64 func TestGet(t *testing.T) { 65 th.SetupHTTP() 66 defer th.TeardownHTTP() 67 HandleGetSuccessfully(t) 68 69 actual, err := recordsets.Get(client.ServiceClient(), "2150b1bf-dee2-4221-9d85-11f7886fb15f", "f7b10e9b-0cae-4a91-b162-562bc6096648").Extract() 70 th.AssertNoErr(t, err) 71 th.CheckDeepEquals(t, &FirstRecordSet, actual) 72 } 73 74 func TestNextPageURL(t *testing.T) { 75 var page recordsets.RecordSetPage 76 page.Body = []byte(NextPageRequest) 77 expected := "http://127.0.0.1:9001/v2/zones/2150b1bf-dee2-4221-9d85-11f7886fb15f/recordsets?limit=1&marker=f7b10e9b-0cae-4a91-b162-562bc6096648" 78 actual, err := page.NextPageURL() 79 th.AssertNoErr(t, err) 80 th.CheckEquals(t, expected, actual) 81 } 82 83 func TestCreate(t *testing.T) { 84 th.SetupHTTP() 85 defer th.TeardownHTTP() 86 HandleCreateSuccessfully(t) 87 88 createOpts := recordsets.CreateOpts{ 89 Name: "example.org.", 90 Type: "A", 91 TTL: 3600, 92 Description: "This is an example record set.", 93 Records: []string{"10.1.0.2"}, 94 } 95 96 actual, err := recordsets.Create(client.ServiceClient(), "2150b1bf-dee2-4221-9d85-11f7886fb15f", createOpts).Extract() 97 th.AssertNoErr(t, err) 98 th.CheckDeepEquals(t, &CreatedRecordSet, actual) 99 } 100 101 func TestUpdate(t *testing.T) { 102 th.SetupHTTP() 103 defer th.TeardownHTTP() 104 HandleUpdateSuccessfully(t) 105 106 updateOpts := recordsets.UpdateOpts{ 107 TTL: 0, 108 Description: "Updated description", 109 Records: []string{"10.1.0.2", "10.1.0.3"}, 110 } 111 112 UpdatedRecordSet := CreatedRecordSet 113 UpdatedRecordSet.Status = "PENDING" 114 UpdatedRecordSet.Action = "UPDATE" 115 UpdatedRecordSet.Description = "Updated description" 116 UpdatedRecordSet.Records = []string{"10.1.0.2", "10.1.0.3"} 117 UpdatedRecordSet.Version = 2 118 119 actual, err := recordsets.Update(client.ServiceClient(), UpdatedRecordSet.ZoneID, UpdatedRecordSet.ID, updateOpts).Extract() 120 th.AssertNoErr(t, err) 121 th.CheckDeepEquals(t, &UpdatedRecordSet, actual) 122 } 123 124 func TestDelete(t *testing.T) { 125 th.SetupHTTP() 126 defer th.TeardownHTTP() 127 HandleDeleteSuccessfully(t) 128 129 DeletedRecordSet := CreatedRecordSet 130 DeletedRecordSet.Status = "PENDING" 131 DeletedRecordSet.Action = "UPDATE" 132 DeletedRecordSet.Description = "Updated description" 133 DeletedRecordSet.Records = []string{"10.1.0.2", "10.1.0.3"} 134 DeletedRecordSet.Version = 2 135 136 err := recordsets.Delete(client.ServiceClient(), DeletedRecordSet.ZoneID, DeletedRecordSet.ID).ExtractErr() 137 th.AssertNoErr(t, err) 138 // th.CheckDeepEquals(t, &DeletedZone, actual) 139 }