Ray Milkey
Committed by Gerrit Code Review

Fix delete of an intent and add a unit test for it

Change-Id: If28dc96b299ab205e5519aac74d98e2588d1c37b
...@@ -149,7 +149,7 @@ public class IntentsWebResource extends AbstractWebResource { ...@@ -149,7 +149,7 @@ public class IntentsWebResource extends AbstractWebResource {
149 149
150 if (intent == null) { 150 if (intent == null) {
151 intent = service 151 intent = service
152 - .getIntent(Key.of(Long.parseLong(keyString), app)); 152 + .getIntent(Key.of(Long.decode(keyString), app));
153 } 153 }
154 if (intent == null) { 154 if (intent == null) {
155 // No such intent. REST standards recommend a positive status code 155 // No such intent. REST standards recommend a positive status code
......
...@@ -38,6 +38,7 @@ import org.onosproject.core.CoreService; ...@@ -38,6 +38,7 @@ import org.onosproject.core.CoreService;
38 import org.onosproject.core.DefaultApplicationId; 38 import org.onosproject.core.DefaultApplicationId;
39 import org.onosproject.core.IdGenerator; 39 import org.onosproject.core.IdGenerator;
40 import org.onosproject.net.NetworkResource; 40 import org.onosproject.net.NetworkResource;
41 +import org.onosproject.net.intent.FakeIntentManager;
41 import org.onosproject.net.intent.Intent; 42 import org.onosproject.net.intent.Intent;
42 import org.onosproject.net.intent.IntentService; 43 import org.onosproject.net.intent.IntentService;
43 import org.onosproject.net.intent.IntentState; 44 import org.onosproject.net.intent.IntentState;
...@@ -387,4 +388,45 @@ public class IntentsResourceTest extends ResourceTest { ...@@ -387,4 +388,45 @@ public class IntentsResourceTest extends ResourceTest {
387 String location = response.getLocation().getPath(); 388 String location = response.getLocation().getPath();
388 assertThat(location, Matchers.startsWith("/intents/2/")); 389 assertThat(location, Matchers.startsWith("/intents/2/"));
389 } 390 }
391 +
392 + /**
393 + * Tests removing an intent with DELETE.
394 + */
395 + @Test
396 + public void testRemove() {
397 + final HashSet<NetworkResource> resources = new HashSet<>();
398 + resources.add(new MockResource(1));
399 + resources.add(new MockResource(2));
400 + resources.add(new MockResource(3));
401 + final Intent intent = new MockIntent(3L, resources);
402 + final ApplicationId appId = new DefaultApplicationId(2, "app");
403 + IntentService fakeManager = new FakeIntentManager();
404 +
405 + expect(mockCoreService.getAppId("app"))
406 + .andReturn(appId).once();
407 + replay(mockCoreService);
408 +
409 + mockIntentService.withdraw(anyObject());
410 + expectLastCall().andDelegateTo(fakeManager).once();
411 + expect(mockIntentService.getIntent(Key.of(2, appId)))
412 + .andReturn(intent)
413 + .once();
414 + expect(mockIntentService.getIntent(Key.of("0x2", appId)))
415 + .andReturn(null)
416 + .once();
417 +
418 + mockIntentService.addListener(anyObject());
419 + expectLastCall().andDelegateTo(fakeManager).once();
420 + mockIntentService.removeListener(anyObject());
421 + expectLastCall().andDelegateTo(fakeManager).once();
422 +
423 + replay(mockIntentService);
424 +
425 + WebResource rs = resource();
426 +
427 + ClientResponse response = rs.path("intents/app/0x2")
428 + .type(MediaType.APPLICATION_JSON_TYPE)
429 + .delete(ClientResponse.class);
430 + assertThat(response.getStatus(), is(HttpURLConnection.HTTP_NO_CONTENT));
431 + }
390 } 432 }
......