Example usage for org.apache.http.client ResponseHandler handleResponse

List of usage examples for org.apache.http.client ResponseHandler handleResponse

Introduction

In this page you can find the example usage for org.apache.http.client ResponseHandler handleResponse.

Prototype

T handleResponse(HttpResponse response) throws ClientProtocolException, IOException;

Source Link

Document

Processes an HttpResponse and returns some value corresponding to that response.

Usage

From source file:org.dasein.cloud.azure.tests.platform.AzureRelationalDatabaseTest.java

@Test
public void listBackupsForDatabaseShouldReturnCorrectResult() throws CloudException, InternalException {

    final String databaseBackupName = DATABASE_ID + "BACKUP";

    RecoverableDatabasesModel recoverableDatabasesModel = new RecoverableDatabasesModel();
    RecoverableDatabaseModel recoverableDatabaseModel1 = new RecoverableDatabaseModel();
    recoverableDatabaseModel1.setName("AutomatedSqlExport_" + DATABASE_ID + "BACKUP1" + "_20150114T100004Z");
    RecoverableDatabaseModel recoverableDatabaseModel2 = new RecoverableDatabaseModel();
    recoverableDatabaseModel2.setName(databaseBackupName);
    recoverableDatabasesModel//from   w  ww.j a v a2 s.c o  m
            .setRecoverableDatabaseModels(Arrays.asList(recoverableDatabaseModel1, recoverableDatabaseModel2));

    final CloseableHttpResponse getRecoverableDatabasesResponseMock = getHttpResponseMock(
            getStatusLineMock(HttpServletResponse.SC_OK),
            new DaseinObjectToXmlEntity<RecoverableDatabasesModel>(recoverableDatabasesModel), new Header[] {});

    new MockUp<CloseableHttpClient>() {
        @Mock(invocations = 1)
        public <T> T execute(HttpUriRequest request, ResponseHandler<T> responseHandler) throws IOException {
            assertGet(request, String.format(RESOURCE_LIST_RECOVERABLE_DATABASES, ACCOUNT_NO, SERVER_ID));
            return responseHandler.handleResponse(getRecoverableDatabasesResponseMock);
        }
    };

    assertReflectionEquals("match fields for backup databases failed",
            Arrays.asList(createDatabaseBackup(databaseBackupName, databaseBackupName)),
            new AzureSqlDatabaseSupport(azureMock)
                    .listBackups(String.format("%s:%s", SERVER_ID, databaseBackupName)));
}

From source file:org.dasein.cloud.azure.tests.platform.AzureRelationalDatabaseTest.java

@Test
public void getDatabaseShouldReturnCorrectResult() throws CloudException, InternalException, IOException {

    final String serverRegion = REGION + "_SERVER";

    ServersModel serversModel = new ServersModel();
    serversModel.setServers(Arrays.asList(createServerModel(SERVER_ID, serverRegion, "test", "test")));

    final CloseableHttpResponse getServersResponseMock = getHttpResponseMock(
            getStatusLineMock(HttpServletResponse.SC_OK),
            new DaseinObjectToXmlEntity<ServersModel>(serversModel), new Header[] {});

    DatabaseServiceResourceModel databaseServiceResourceModel = createDatabaseServiceResourceModel(DATABASE_ID);

    final CloseableHttpResponse getDatabaseResponseMock = getHttpResponseMock(
            getStatusLineMock(HttpServletResponse.SC_OK),
            new DaseinObjectToXmlEntity<DatabaseServiceResourceModel>(databaseServiceResourceModel),
            new Header[] {});

    new MockUp<CloseableHttpClient>() {
        @Mock(invocations = 2)//from   w w  w  . j a v  a 2s. c  o  m
        public <T> T execute(Invocation inv, HttpUriRequest request, ResponseHandler<T> responseHandler)
                throws IOException {
            if (inv.getInvocationCount() == 1) {
                assertGet(request, String.format(RESOURCE_SERVERS_NONGEN, ACCOUNT_NO));
                return responseHandler.handleResponse(getServersResponseMock);
            } else if (inv.getInvocationCount() == 2) {
                assertGet(request, String.format(RESOURCE_DATABASE, ACCOUNT_NO, SERVER_ID, DATABASE_ID));
                return responseHandler.handleResponse(getDatabaseResponseMock);
            } else {
                throw new RuntimeException("Invalid invocation count!");
            }
        }
    };

    Database expectedResult = createDatabase(SERVER_ID, databaseServiceResourceModel.getName(),
            Integer.parseInt(databaseServiceResourceModel.getMaxSizeGB()),
            new DateTime(databaseServiceResourceModel.getCreationDate()).getMillis(),
            databaseServiceResourceModel.getEdition(), serverRegion);
    Database actualResult = new AzureSqlDatabaseSupport(azureMock)
            .getDatabase(String.format("%s:%s", SERVER_ID, databaseServiceResourceModel.getName()));
    assertReflectionEquals("match fields for database failed", expectedResult, actualResult);
}

From source file:org.dasein.cloud.azure.tests.platform.AzureRelationalDatabaseTest.java

@Test
public void listAllBackupsShouldReturnCorrectResult() throws CloudException, InternalException {

    final String startIpAddress = "202.100.10.10";
    final String endIpAddress = "202.100.10.100";

    ServerServiceResourcesModel serverServiceResourcesModel = new ServerServiceResourcesModel();
    serverServiceResourcesModel.setServerServiceResourcesModels(
            Arrays.asList(createServerServiceResourceModel(SERVER_ID, startIpAddress, endIpAddress)));

    final CloseableHttpResponse listServersResponseMock = getHttpResponseMock(
            getStatusLineMock(HttpServletResponse.SC_OK),
            new DaseinObjectToXmlEntity<ServerServiceResourcesModel>(serverServiceResourcesModel),
            new Header[] {});

    RecoverableDatabasesModel recoverableDatabasesModel = new RecoverableDatabasesModel();
    RecoverableDatabaseModel recoverableDatabaseModel1 = new RecoverableDatabaseModel();
    recoverableDatabaseModel1.setName("AutomatedSqlExport_" + DATABASE_ID + "BACKUP1" + "_20150114T100004Z");
    RecoverableDatabaseModel recoverableDatabaseModel2 = new RecoverableDatabaseModel();
    recoverableDatabaseModel2.setName(DATABASE_ID + "BACKUP2");
    recoverableDatabasesModel//from  w  w w.  j av a 2s. c  o m
            .setRecoverableDatabaseModels(Arrays.asList(recoverableDatabaseModel1, recoverableDatabaseModel2));

    final CloseableHttpResponse getRecoverableDatabasesResponseMock = getHttpResponseMock(
            getStatusLineMock(HttpServletResponse.SC_OK),
            new DaseinObjectToXmlEntity<RecoverableDatabasesModel>(recoverableDatabasesModel), new Header[] {});

    new MockUp<CloseableHttpClient>() {
        @Mock(invocations = 2)
        public <T> T execute(Invocation inv, HttpUriRequest request, ResponseHandler<T> responseHandler)
                throws IOException {
            if (inv.getInvocationCount() == 1) {
                assertGet(request, String.format(RESOURCE_SERVERS, ACCOUNT_NO));
                return responseHandler.handleResponse(listServersResponseMock);
            } else if (inv.getInvocationCount() == 2) {
                assertGet(request, String.format(RESOURCE_LIST_RECOVERABLE_DATABASES, ACCOUNT_NO, SERVER_ID));
                return responseHandler.handleResponse(getRecoverableDatabasesResponseMock);
            } else {
                throw new RuntimeException("Invalid invocation count!");
            }
        }
    };

    assertReflectionEquals("match fields for backup databases failed",
            Arrays.asList(
                    createDatabaseBackup(DATABASE_ID + "BACKUP1",
                            "AutomatedSqlExport_" + DATABASE_ID + "BACKUP1" + "_20150114T100004Z"),
                    createDatabaseBackup(DATABASE_ID + "BACKUP2", DATABASE_ID + "BACKUP2")),
            new AzureSqlDatabaseSupport(azureMock).listBackups(null));
}

From source file:org.dasein.cloud.azure.tests.platform.AzureRelationalDatabaseTest.java

@Test
public void addAccessShouldReturnCorrectResult() throws CloudException, InternalException {

    final String startIpAddress = "202.100.10.10";
    final String endIpAddress = "202.100.10.100";

    ServersModel serversModel = new ServersModel();
    serversModel.setServers(Arrays.asList(createServerModel(SERVER_ID, REGION, "test", "test")));

    final CloseableHttpResponse getServersResponseMock = getHttpResponseMock(
            getStatusLineMock(HttpServletResponse.SC_OK),
            new DaseinObjectToXmlEntity<ServersModel>(serversModel), new Header[] {});

    DatabaseServiceResourceModel databaseServiceResourceModel = createDatabaseServiceResourceModel(DATABASE_ID);

    final CloseableHttpResponse getDatabaseResponseMock = getHttpResponseMock(
            getStatusLineMock(HttpServletResponse.SC_OK),
            new DaseinObjectToXmlEntity<DatabaseServiceResourceModel>(databaseServiceResourceModel),
            new Header[] {});

    final CloseableHttpResponse addFilewallResponseMock = getHttpResponseMock(
            getStatusLineMock(HttpServletResponse.SC_OK),
            new DaseinObjectToXmlEntity<ServerServiceResourceModel>(createServerServiceResourceModel(
                    String.format("%s_%s", databaseServiceResourceModel.getName(), new Date().getTime()),
                    startIpAddress, endIpAddress)),
            new Header[] {});

    new MockUp<CloseableHttpClient>() {
        @Mock(invocations = 3)/*from  w  w w.jav  a2s .co  m*/
        public <T> T execute(Invocation inv, HttpUriRequest request, ResponseHandler<T> responseHandler)
                throws IOException {
            if (inv.getInvocationCount() == 1) {
                assertGet(request, String.format(RESOURCE_SERVERS_NONGEN, ACCOUNT_NO));
                return responseHandler.handleResponse(getServersResponseMock);
            } else if (inv.getInvocationCount() == 2) {
                assertGet(request, String.format(RESOURCE_DATABASE, ACCOUNT_NO, SERVER_ID, DATABASE_ID));
                return responseHandler.handleResponse(getDatabaseResponseMock);
            } else if (inv.getInvocationCount() == 3) {
                assertPost(request, String.format(RESOURCE_SERVER_FIREWALL, ACCOUNT_NO, SERVER_ID));
                return responseHandler.handleResponse(addFilewallResponseMock);
            } else {
                throw new RuntimeException("Invalid invocation count!");
            }
        }
    };

    new AzureSqlDatabaseSupport(azureMock).addAccess(String.format("%s:%s", SERVER_ID, DATABASE_ID),
            String.format("%s::%s", startIpAddress, endIpAddress));
}

From source file:org.dasein.cloud.azure.tests.platform.AzureRelationalDatabaseTest.java

@Test(expected = CloudException.class)
public void createFromScratchShouldDeleteServerAndThrowExceptionIfCreateDatabaseFailed()
        throws CloudException, InternalException {

    ServerNameModel serverNameModel = new ServerNameModel();
    serverNameModel.setName(SERVER_ID);//w  w w . j av a  2  s.  c  o  m

    final CloseableHttpResponse createServerResponseMock = getHttpResponseMock(
            getStatusLineMock(HttpServletResponse.SC_OK),
            new DaseinObjectToXmlEntity<ServerNameModel>(serverNameModel), new Header[] {});

    ServerServiceResourceModel serverServiceResourceModel = new ServerServiceResourceModel();
    ServerServiceResourceModel.Version versionModel = new ServerServiceResourceModel.Version();
    versionModel.setName("2.0");
    ServerServiceResourceModel.Edition editionModel = new ServerServiceResourceModel.Edition();
    editionModel.setName("Basic");
    ServerServiceResourceModel.ServiceLevelObjective serviceLevelObjectiveModel = new ServerServiceResourceModel.ServiceLevelObjective();
    serviceLevelObjectiveModel.setName("10GB");
    serviceLevelObjectiveModel.setId("ServiceLevelObjectiveModelID");
    editionModel.setServiceLevelObjectives(Arrays.asList(serviceLevelObjectiveModel));
    versionModel.setEditions(Arrays.asList(editionModel));
    serverServiceResourceModel.setVersions(Arrays.asList(versionModel));
    serverServiceResourceModel.setName(SERVER_ID);

    final CloseableHttpResponse getSubscriptionVersionProductsResponseMock = getHttpResponseMock(
            getStatusLineMock(HttpServletResponse.SC_OK),
            new DaseinObjectToXmlEntity<ServerServiceResourceModel>(serverServiceResourceModel),
            new Header[] {});

    final CloseableHttpResponse deleteServerResponseMock = getHttpResponseMock(
            getStatusLineMock(HttpServletResponse.SC_OK), null, new Header[] {});

    new MockUp<CloseableHttpClient>() {
        @Mock(invocations = 4)
        public <T> T execute(Invocation inv, HttpUriRequest request, ResponseHandler<T> responseHandler)
                throws IOException {
            if (inv.getInvocationCount() == 1) {
                assertPost(request, String.format(RESOURCE_SERVERS, ACCOUNT_NO));
                return responseHandler.handleResponse(createServerResponseMock);
            } else if (inv.getInvocationCount() == 2) {
                assertGet(request, String.format(RESOURCE_SUBSCRIPTION_META, ACCOUNT_NO));
                return responseHandler.handleResponse(getSubscriptionVersionProductsResponseMock);
            } else if (inv.getInvocationCount() == 3) {
                throw new RuntimeException("Create database failed");
            } else if (inv.getInvocationCount() == 4) {
                assertDelete(request, String.format(RESOURCE_SERVER, ACCOUNT_NO, SERVER_ID));
                return responseHandler.handleResponse(deleteServerResponseMock);
            } else {
                throw new RuntimeException("Invalid invocation count!");
            }
        }
    };

    DatabaseProduct product = new DatabaseProduct(serviceLevelObjectiveModel.getName());
    product.setName(editionModel.getName());
    new AzureSqlDatabaseSupport(azureMock).createFromScratch(DATABASE_ID, product, product.getName(), "test",
            "test", 3306);
}

From source file:org.dasein.cloud.azure.tests.platform.AzureRelationalDatabaseTest.java

@Test
public void listDatabasesShouldReturnCorrectResult() throws CloudException, InternalException {

    ServersModel serversModel = new ServersModel();
    serversModel.setServers(Arrays.asList(createServerModel(SERVER_ID, REGION, "test", "test"),
            createServerModel(SERVER_ID, REGION + "_INVALID", "test", "test")));

    final CloseableHttpResponse listServerNonGenResponseMock = getHttpResponseMock(
            getStatusLineMock(HttpServletResponse.SC_OK),
            new DaseinObjectToXmlEntity<ServersModel>(serversModel), new Header[] {});

    DatabaseServiceResourceModel databaseServiceResourceModel1 = createDatabaseServiceResourceModel(
            DATABASE_ID + "_1");
    DatabaseServiceResourceModel databaseServiceResourceModel2 = createDatabaseServiceResourceModel(
            DATABASE_ID + "_2");
    DatabaseServiceResourceModel databaseServiceResourceModel3 = createDatabaseServiceResourceModel("master");

    DatabaseServiceResourcesModel databaseServiceResourcesModel = new DatabaseServiceResourcesModel();
    databaseServiceResourcesModel.setDatabaseServiceResourceModels(Arrays.asList(databaseServiceResourceModel1,
            databaseServiceResourceModel2, databaseServiceResourceModel3));

    final CloseableHttpResponse listDatabasesResponseMock = getHttpResponseMock(
            getStatusLineMock(HttpServletResponse.SC_OK),
            new DaseinObjectToXmlEntity<DatabaseServiceResourcesModel>(databaseServiceResourcesModel),
            new Header[] {});

    new MockUp<CloseableHttpClient>() {
        @Mock(invocations = 2)/*from www.j  av a2 s.  com*/
        public <T> T execute(Invocation inv, HttpUriRequest request, ResponseHandler<T> responseHandler)
                throws IOException {
            if (inv.getInvocationCount() == 1) {
                assertGet(request, String.format(RESOURCE_SERVERS_NONGEN, ACCOUNT_NO));
                return responseHandler.handleResponse(listServerNonGenResponseMock);
            } else if (inv.getInvocationCount() == 2) {
                assertGet(request, String.format(RESOURCE_LIST_DATABASES, ACCOUNT_NO, SERVER_ID));
                return responseHandler.handleResponse(listDatabasesResponseMock);
            } else {
                throw new RuntimeException("Invalid invocation count!");
            }
        }
    };

    assertReflectionEquals("match fields for databases failed",
            Arrays.asList(
                    this.createDatabase(SERVER_ID, databaseServiceResourceModel1.getName(),
                            Integer.valueOf(databaseServiceResourceModel1.getMaxSizeGB()),
                            format.parseDateTime(databaseServiceResourceModel1.getCreationDate()).getMillis(),
                            databaseServiceResourceModel1.getEdition(), REGION),
                    this.createDatabase(SERVER_ID, databaseServiceResourceModel2.getName(),
                            Integer.valueOf(databaseServiceResourceModel2.getMaxSizeGB()),
                            format.parseDateTime(databaseServiceResourceModel2.getCreationDate()).getMillis(),
                            databaseServiceResourceModel2.getEdition(), REGION)),
            new AzureSqlDatabaseSupport(azureMock).listDatabases());
}

From source file:org.dasein.cloud.azure.tests.platform.AzureRelationalDatabaseTest.java

@Test
public void removeDatabaseShouldDeleteWithCorrectRequestIfExistSingleDatabase()
        throws CloudException, InternalException {

    final CloseableHttpResponse deleteResponseMock = getHttpResponseMock(
            getStatusLineMock(HttpServletResponse.SC_OK), null, new Header[] {});

    final CloseableHttpResponse listDatabasesResponseMock = getHttpResponseMock(
            getStatusLineMock(HttpServletResponse.SC_OK),
            new DaseinObjectToXmlEntity<DatabaseServiceResourcesModel>(new DatabaseServiceResourcesModel()),
            new Header[] {});

    new MockUp<CloseableHttpClient>() {
        @Mock(invocations = 3)//from   w  ww .  j  av a  2 s.c  o  m
        public <T> T execute(Invocation inv, HttpUriRequest request, ResponseHandler<T> responseHandler)
                throws IOException {
            if (inv.getInvocationCount() == 1) {
                assertDelete(request, String.format(RESOURCE_DATABASE, ACCOUNT_NO, SERVER_ID, DATABASE_ID));
                return responseHandler.handleResponse(deleteResponseMock);
            } else if (inv.getInvocationCount() == 2) {
                assertGet(request, String.format(RESOURCE_LIST_DATABASES, ACCOUNT_NO, SERVER_ID));
                return responseHandler.handleResponse(listDatabasesResponseMock);
            } else if (inv.getInvocationCount() == 3) {
                assertDelete(request, String.format(RESOURCE_SERVER, ACCOUNT_NO, SERVER_ID));
                return responseHandler.handleResponse(deleteResponseMock);
            } else {
                throw new RuntimeException("Invalid invocation count!");
            }
        }
    };

    new AzureSqlDatabaseSupport(azureMock).removeDatabase(String.format("%s:%s", SERVER_ID, DATABASE_ID));
}

From source file:org.dasein.cloud.azure.tests.platform.AzureRelationalDatabaseTest.java

@Test
public void removeDatabaseShouldDeleteWithCorrectRequestIfExistMultipleDatabases()
        throws CloudException, InternalException {

    final CloseableHttpResponse deleteResponseMock = getHttpResponseMock(
            getStatusLineMock(HttpServletResponse.SC_OK), null, new Header[] {});

    DatabaseServiceResourcesModel databaseServiceResourcesModel = new DatabaseServiceResourcesModel();
    databaseServiceResourcesModel/* ww w .j a v  a2  s .c o m*/
            .setDatabaseServiceResourceModels(Arrays.asList(createDatabaseServiceResourceModel("master"),
                    createDatabaseServiceResourceModel(DATABASE_ID + "_OTHERS")));

    final CloseableHttpResponse listDatabasesResponseMock = getHttpResponseMock(
            getStatusLineMock(HttpServletResponse.SC_OK),
            new DaseinObjectToXmlEntity<DatabaseServiceResourcesModel>(databaseServiceResourcesModel),
            new Header[] {});

    new MockUp<CloseableHttpClient>() {
        @Mock(invocations = 2)
        public <T> T execute(Invocation inv, HttpUriRequest request, ResponseHandler<T> responseHandler)
                throws IOException {
            if (inv.getInvocationCount() == 1) {
                assertDelete(request, String.format(RESOURCE_DATABASE, ACCOUNT_NO, SERVER_ID, DATABASE_ID));
                return responseHandler.handleResponse(deleteResponseMock);
            } else if (inv.getInvocationCount() == 2) {
                assertGet(request, String.format(RESOURCE_LIST_DATABASES, ACCOUNT_NO, SERVER_ID));
                return responseHandler.handleResponse(listDatabasesResponseMock);
            } else {
                throw new RuntimeException("Invalid invocation count!");
            }
        }
    };

    new AzureSqlDatabaseSupport(azureMock).removeDatabase(String.format("%s:%s", SERVER_ID, DATABASE_ID));
}

From source file:org.dasein.cloud.azure.tests.platform.AzureRelationalDatabaseTest.java

@Test
public void createFromScratchShouldReturnCorrectResult() throws CloudException, InternalException {

    ServerNameModel serverNameModel = new ServerNameModel();
    serverNameModel.setName(SERVER_ID);/*from  w ww  .j  ava2s .  c o m*/

    final CloseableHttpResponse createServerResponseMock = getHttpResponseMock(
            getStatusLineMock(HttpServletResponse.SC_OK),
            new DaseinObjectToXmlEntity<ServerNameModel>(serverNameModel), new Header[] {});

    ServerServiceResourceModel serverServiceResourceModel = new ServerServiceResourceModel();
    ServerServiceResourceModel.Version versionModel = new ServerServiceResourceModel.Version();
    versionModel.setName("2.0");
    ServerServiceResourceModel.Edition editionModel = new ServerServiceResourceModel.Edition();
    editionModel.setName("Basic");
    ServerServiceResourceModel.ServiceLevelObjective serviceLevelObjectiveModel = new ServerServiceResourceModel.ServiceLevelObjective();
    serviceLevelObjectiveModel.setName("10GB");
    serviceLevelObjectiveModel.setId("ServiceLevelObjectiveModelID");
    editionModel.setServiceLevelObjectives(Arrays.asList(serviceLevelObjectiveModel));
    versionModel.setEditions(Arrays.asList(editionModel));
    serverServiceResourceModel.setVersions(Arrays.asList(versionModel));
    serverServiceResourceModel.setName(SERVER_ID);

    final CloseableHttpResponse getSubscriptionVersionProductsResponseMock = getHttpResponseMock(
            getStatusLineMock(HttpServletResponse.SC_OK),
            new DaseinObjectToXmlEntity<ServerServiceResourceModel>(serverServiceResourceModel),
            new Header[] {});

    DatabaseServiceResourceModel databaseServiceResourceModel = new DatabaseServiceResourceModel();
    databaseServiceResourceModel.setName(DATABASE_ID);

    final CloseableHttpResponse createDatabaseResponseMock = getHttpResponseMock(
            getStatusLineMock(HttpServletResponse.SC_OK),
            new DaseinObjectToXmlEntity<DatabaseServiceResourceModel>(databaseServiceResourceModel),
            new Header[] {});

    new MockUp<CloseableHttpClient>() {
        @Mock(invocations = 3)
        public <T> T execute(Invocation inv, HttpUriRequest request, ResponseHandler<T> responseHandler)
                throws IOException {
            if (inv.getInvocationCount() == 1) {
                assertPost(request, String.format(RESOURCE_SERVERS, ACCOUNT_NO));
                return responseHandler.handleResponse(createServerResponseMock);
            } else if (inv.getInvocationCount() == 2) {
                assertGet(request, String.format(RESOURCE_SUBSCRIPTION_META, ACCOUNT_NO));
                return responseHandler.handleResponse(getSubscriptionVersionProductsResponseMock);
            } else if (inv.getInvocationCount() == 3) {
                assertPost(request, String.format(RESOURCE_DATABASES, ACCOUNT_NO, SERVER_ID));
                return responseHandler.handleResponse(createDatabaseResponseMock);
            } else {
                throw new RuntimeException("Invalid invocation count!");
            }
        }
    };

    String expectedDatabaseId = String.format("%s:%s", SERVER_ID, DATABASE_ID);

    DatabaseProduct product = new DatabaseProduct(serviceLevelObjectiveModel.getName());
    product.setName(editionModel.getName());
    String actualDatabaseId = new AzureSqlDatabaseSupport(azureMock).createFromScratch(DATABASE_ID, product,
            product.getName(), "test", "test", 3306);

    assertEquals("database id not match", expectedDatabaseId, actualDatabaseId);
}

From source file:org.dasein.cloud.azure.tests.platform.AzureRelationalDatabaseTest.java

@Test
public void removeDatabaseShouldDeleteWithCorrectRequestIfExistSingleAndMasterDatabase()
        throws CloudException, InternalException {

    final CloseableHttpResponse deleteResponseMock = getHttpResponseMock(
            getStatusLineMock(HttpServletResponse.SC_OK), null, new Header[] {});

    DatabaseServiceResourcesModel databaseServiceResourcesModel = new DatabaseServiceResourcesModel();
    databaseServiceResourcesModel//from w  ww  .j a  v a2 s .  c o  m
            .setDatabaseServiceResourceModels(Arrays.asList(createDatabaseServiceResourceModel("master")));

    final CloseableHttpResponse listDatabasesResponseMock = getHttpResponseMock(
            getStatusLineMock(HttpServletResponse.SC_OK),
            new DaseinObjectToXmlEntity<DatabaseServiceResourcesModel>(databaseServiceResourcesModel),
            new Header[] {});

    new MockUp<CloseableHttpClient>() {
        @Mock(invocations = 3)
        public <T> T execute(Invocation inv, HttpUriRequest request, ResponseHandler<T> responseHandler)
                throws IOException {
            if (inv.getInvocationCount() == 1) {
                assertDelete(request, String.format(RESOURCE_DATABASE, ACCOUNT_NO, SERVER_ID, DATABASE_ID));
                return responseHandler.handleResponse(deleteResponseMock);
            } else if (inv.getInvocationCount() == 2) {
                assertGet(request, String.format(RESOURCE_LIST_DATABASES, ACCOUNT_NO, SERVER_ID));
                return responseHandler.handleResponse(listDatabasesResponseMock);
            } else if (inv.getInvocationCount() == 3) {
                assertDelete(request, String.format(RESOURCE_SERVER, ACCOUNT_NO, SERVER_ID));
                return responseHandler.handleResponse(deleteResponseMock);
            } else {
                throw new RuntimeException("Invalid invocation count!");
            }
        }
    };

    new AzureSqlDatabaseSupport(azureMock).removeDatabase(String.format("%s:%s", SERVER_ID, DATABASE_ID));
}