@@ -115,3 +115,51 @@ func TestCreateResource(t *testing.T) {
115115 }
116116 })
117117}
118+
119+ func TestDeleteResource (t * testing.T ) {
120+ handler := func (w http.ResponseWriter , r * http.Request ) {
121+ if r .Header .Get ("Authorization" ) == "Bearer valid-token" {
122+ w .WriteHeader (http .StatusOK )
123+ w .Write ([]byte (`{"success":true,"message":"Resource deleted successfully"}` ))
124+ } else {
125+ w .WriteHeader (http .StatusUnauthorized )
126+ w .Write ([]byte (`{"success":false,"message":"Invalid token"}` ))
127+ }
128+ }
129+
130+ ts := httptest .NewServer (http .HandlerFunc (handler ))
131+ defer ts .Close ()
132+
133+ service := NewService (ts .URL , "client-id" , "secret" )
134+
135+ t .Run ("Valid Token" , func (t * testing.T ) {
136+ err := service .DeleteResource (context .Background (), "resource-123" , "valid-token" )
137+ if err != nil {
138+ t .Fatalf ("expected no error, got %v" , err )
139+ }
140+ })
141+
142+ t .Run ("Invalid Token" , func (t * testing.T ) {
143+ err := service .DeleteResource (context .Background (), "resource-123" , "invalid-token" )
144+ if err == nil {
145+ t .Fatal ("expected an error, got none" )
146+ }
147+ })
148+
149+ t .Run ("Non-existent Resource" , func (t * testing.T ) {
150+ // Override handler for this test to return 404
151+ notFoundHandler := func (w http.ResponseWriter , r * http.Request ) {
152+ w .WriteHeader (http .StatusNotFound )
153+ w .Write ([]byte (`{"success":false,"message":"Resource not found"}` ))
154+ }
155+
156+ notFoundServer := httptest .NewServer (http .HandlerFunc (notFoundHandler ))
157+ defer notFoundServer .Close ()
158+
159+ notFoundService := NewService (notFoundServer .URL , "client-id" , "secret" )
160+ err := notFoundService .DeleteResource (context .Background (), "non-existent" , "valid-token" )
161+ if err == nil {
162+ t .Fatal ("expected an error, got none" )
163+ }
164+ })
165+ }
0 commit comments