|
@@ -22,7 +22,10 @@ import org.apache.ambari.server.api.query.Query;
|
|
|
import org.apache.ambari.server.api.query.render.DefaultRenderer;
|
|
|
import org.apache.ambari.server.api.query.render.Renderer;
|
|
|
import org.apache.ambari.server.api.resources.ResourceInstance;
|
|
|
-import org.apache.ambari.server.api.services.*;
|
|
|
+import org.apache.ambari.server.api.services.Request;
|
|
|
+import org.apache.ambari.server.api.services.RequestBody;
|
|
|
+import org.apache.ambari.server.api.services.Result;
|
|
|
+import org.apache.ambari.server.api.services.ResultStatus;
|
|
|
import org.apache.ambari.server.api.services.persistence.PersistenceManager;
|
|
|
import org.apache.ambari.server.api.util.TreeNode;
|
|
|
import org.apache.ambari.server.controller.spi.Predicate;
|
|
@@ -33,6 +36,8 @@ import org.junit.Before;
|
|
|
import org.junit.Test;
|
|
|
|
|
|
import java.util.*;
|
|
|
+import org.apache.ambari.server.ConfigGroupNotFoundException;
|
|
|
+import org.apache.ambari.server.controller.spi.NoSuchResourceException;
|
|
|
|
|
|
import static org.easymock.EasyMock.*;
|
|
|
import static org.junit.Assert.*;
|
|
@@ -233,6 +238,33 @@ public class DeleteHandlerTest {
|
|
|
verify(request, body, resource, pm, status, resource1, resource2, requestResource, query);
|
|
|
}
|
|
|
|
|
|
+ @Test
|
|
|
+ public void testIdempotentPersist() throws Exception {
|
|
|
+ Request request = createNiceMock(Request.class);
|
|
|
+ RequestBody body = createNiceMock(RequestBody.class);
|
|
|
+ ResourceInstance resource = createNiceMock(ResourceInstance.class);
|
|
|
+ PersistenceManager pm = createNiceMock(PersistenceManager.class);
|
|
|
+ RequestStatus status = createNiceMock(RequestStatus.class);
|
|
|
+ Resource resource1 = createNiceMock(Resource.class);
|
|
|
+ Resource requestResource = createNiceMock(Resource.class);
|
|
|
+ ConfigGroupNotFoundException configGroupNotFoundException = createNiceMock(ConfigGroupNotFoundException.class);
|
|
|
+ Query query = createNiceMock(Query.class);
|
|
|
+
|
|
|
+ // expectations
|
|
|
+ expect(request.getResource()).andReturn(resource).anyTimes();
|
|
|
+ expect(request.getBody()).andReturn(body).atLeastOnce();
|
|
|
+
|
|
|
+ expect(pm.delete(resource, body)).andThrow(
|
|
|
+ new NoSuchResourceException("Configgroup not exist", configGroupNotFoundException));
|
|
|
+
|
|
|
+ replay(request, body, resource, pm, status, resource1, requestResource, query);
|
|
|
+
|
|
|
+ Result result = new TestDeleteHandler(pm).persist(resource, body);
|
|
|
+
|
|
|
+ assertNotNull(result);
|
|
|
+ assertEquals(ResultStatus.STATUS.ACCEPTED, result.getStatus().getStatus());
|
|
|
+ }
|
|
|
+
|
|
|
private class TestDeleteHandler extends DeleteHandler {
|
|
|
private PersistenceManager m_testPm;
|
|
|
|
|
@@ -245,4 +277,4 @@ public class DeleteHandlerTest {
|
|
|
return m_testPm;
|
|
|
}
|
|
|
}
|
|
|
-}
|
|
|
+}
|