@@ -24,11 +24,12 @@ const (
2424)
2525
2626func TestNewGoodOpt (t * testing.T ) {
27- _ , err := New (configImpl .FromFile (sdkConfigFile ),
27+ sdk , err := New (configImpl .FromFile (sdkConfigFile ),
2828 goodOpt ())
2929 if err != nil {
3030 t .Fatalf ("Expected no error from New, but got %v" , err )
3131 }
32+ sdk .Close ()
3233}
3334
3435func goodOpt () Option {
@@ -38,11 +39,12 @@ func goodOpt() Option {
3839}
3940
4041func TestNewBadOpt (t * testing.T ) {
41- _ , err := New (configImpl .FromFile (sdkConfigFile ),
42+ sdk , err := New (configImpl .FromFile (sdkConfigFile ),
4243 badOpt ())
4344 if err == nil {
4445 t .Fatalf ("Expected error from New" )
4546 }
47+ sdk .Close ()
4648}
4749
4850func badOpt () Option {
@@ -51,17 +53,28 @@ func badOpt() Option {
5153 }
5254}
5355
56+ func TestDoubleClose (t * testing.T ) {
57+ sdk , err := New (configImpl .FromFile (sdkConfigFile ),
58+ goodOpt ())
59+ if err != nil {
60+ t .Fatalf ("Expected no error from New, but got %v" , err )
61+ }
62+ sdk .Close ()
63+ sdk .Close ()
64+ }
65+
5466func TestWithCorePkg (t * testing.T ) {
5567 // Test New SDK with valid config file
5668 c , err := configImpl .FromFile (sdkConfigFile )()
5769 if err != nil {
5870 t .Fatalf ("Unexpected error from config: %v" , err )
5971 }
6072
61- _ , err = New (WithConfig (c ))
73+ sdk , err : = New (WithConfig (c ))
6274 if err != nil {
6375 t .Fatalf ("Error initializing SDK: %s" , err )
6476 }
77+ defer sdk .Close ()
6578
6679 mockCtrl := gomock .NewController (t )
6780 defer mockCtrl .Finish ()
@@ -86,10 +99,11 @@ func TestWithServicePkg(t *testing.T) {
8699 t .Fatalf ("Unexpected error from config: %v" , err )
87100 }
88101
89- _ , err = New (WithConfig (c ))
102+ sdk , err : = New (WithConfig (c ))
90103 if err != nil {
91104 t .Fatalf ("Error initializing SDK: %s" , err )
92105 }
106+ defer sdk .Close ()
93107
94108 mockCtrl := gomock .NewController (t )
95109 defer mockCtrl .Finish ()
@@ -116,20 +130,22 @@ func TestWithSessionPkg(t *testing.T) {
116130 t .Fatalf ("Error initializing core factory: %s" , err )
117131 }
118132
119- _ , err = New (WithConfig (c ))
133+ sdk , err : = New (WithConfig (c ))
120134 if err != nil {
121135 t .Fatalf ("Error initializing SDK: %s" , err )
122136 }
137+ sdk .Close ()
123138
124139 // Create mock to ensure the provided factory is called.
125140 mockCtrl := gomock .NewController (t )
126141 defer mockCtrl .Finish ()
127142 factory := mockapisdk .NewMockSessionClientFactory (mockCtrl )
128143
129- sdk , err : = New (WithConfig (c ), WithCorePkg (core ), WithSessionPkg (factory ))
144+ sdk , err = New (WithConfig (c ), WithCorePkg (core ), WithSessionPkg (factory ))
130145 if err != nil {
131146 t .Fatalf ("Error initializing SDK: %s" , err )
132147 }
148+ defer sdk .Close ()
133149
134150 // Get resource management
135151 _ , err = sdk .NewClient (WithUser (sdkValidClientUser )).ResourceMgmt ()
@@ -194,6 +210,7 @@ func TestNewDefaultSDKFromByte(t *testing.T) {
194210 if sdk == nil {
195211 t .Fatalf ("SDK should not be empty when initialized" )
196212 }
213+ sdk .Close ()
197214}
198215
199216func loadConfigBytesFromFile (t * testing.T , filePath string ) ([]byte , error ) {
@@ -224,6 +241,7 @@ func TestWithConfigSuccess(t *testing.T) {
224241 if err != nil {
225242 t .Fatalf ("Error initializing SDK: %s" , err )
226243 }
244+ defer sdk .Close ()
227245
228246 client1 , err := sdk .config .Client ()
229247 if err != nil {
0 commit comments