Java 类org.apache.http.HttpStatus 实例源码

项目:message-broker    文件:ConsumersRestApiTest.java   
@Test
public void testConsumerInNonExistingQueue() throws Exception {
    String queueName = "testConsumerInNonExistingQueue";
    HttpGet httpGet = new HttpGet(apiBasePath + QueuesApiDelegate.QUEUES_API_PATH
                                          + "/" + queueName + "/consumers");

    CloseableHttpResponse response = client.execute(httpGet);

    Assert.assertEquals(response.getStatusLine().getStatusCode(), HttpStatus.SC_NOT_FOUND,
                        "Incorrect status code");
    String body = EntityUtils.toString(response.getEntity());
    Error error = objectMapper.readValue(body, Error.class);

    Assert.assertFalse(error.getMessage().isEmpty(), "Error message shouldn't be empty.");

}
项目:personium-core    文件:CrossDomainTest.java   
/**
 * WebDAVにGETを指定してXHR2ヘッダーのALLOW_ORIGINのみ返却されること.
 */
@Test
public final void WebDAVにGETを指定してXHR2ヘッダーのALLOW_ORIGINのみ返却されること() {
    try {
        // コレクションの作成
        createDavCollection();

        TResponse response =
                Http.request("crossdomain/xhr2-preflight-no-access-control-allow-headers.txt")
                        .with("path", "/testcell1/box1/davcol/test.txt")
                        .with("token", PersoniumUnitConfig.getMasterToken())
                        .returns()
                        .statusCode(HttpStatus.SC_NOT_FOUND)
                        .debug();
        checkXHR2HeaderOnlyOrigin(response);
    } finally {
        // コレクションの削除
        deleteDavCollection();
    }
}
项目:bootstrap    文件:ValidationJSonIT.java   
/**
 * Check the JAX-RS validation reject the null object in POST
 */
@Test
public void testValidationFilterFailedNull() throws IOException {
    final HttpPost httppost = new HttpPost(BASE_URI + RESOURCE);
    httppost.setHeader("Content-Type", "application/json");
    httppost.setHeader(ACCEPT_LANGUAGE, "EN");
    final HttpResponse response = httpclient.execute(httppost);
    Assert.assertEquals(HttpStatus.SC_BAD_REQUEST, response.getStatusLine().getStatusCode());
    final String content = IOUtils.toString(response.getEntity().getContent(), StandardCharsets.UTF_8);
    Assert.assertNotNull(content);
    @SuppressWarnings("all")
    final Map<String, Map<String, List<Map<String, Object>>>> result = (Map<String, Map<String, List<Map<String, Object>>>>) new ObjectMapperTrim()
            .readValue(content, HashMap.class);

    Assert.assertFalse(result.isEmpty());
    final Map<String, List<Map<String, Object>>> errors = result.get("errors");
    Assert.assertNotNull(errors);
    Assert.assertEquals(1, errors.size());
    log.info("### ENTRY ####" + errors.keySet().iterator().next());
    Assert.assertNotNull(errors.get("wine"));
    Assert.assertEquals(1, ((List<?>) errors.get("wine")).size());
    Assert.assertEquals(1, ((Map<?, ?>) ((List<?>) errors.get("wine")).get(0)).size());
    Assert.assertEquals(((Map<?, ?>) ((List<?>) errors.get("wine")).get(0)).get(RULE), "NotNull");
}
项目:personium-core    文件:FileAccessControlTest.java   
/**
 * 親コレクションにread権限がある_かつ_対象ファイルにread権限があるアカウントでファイルの取得ができること.
 * @throws JAXBException ACLのパース失敗
 */
@Test
public void 親コレクションにread権限がある_かつ_対象ファイルにread権限があるアカウントでファイルの取得ができること() throws JAXBException {
    String token;
    String path = String.format("%s/%s", PARENT_COL_NAME, TARGET_FILE_NAME);

    // ACL設定
    setAcl(PARENT_COL_NAME, ROLE, "read");
    setAcl(path, ROLE, "read");

    // アクセストークン取得
    token = getToken(ACCOUNT);

    // リクエスト実行
    DavResourceUtils.getWebDav(CELL_NAME, token, BOX_NAME, path, HttpStatus.SC_OK);
}
项目:personium-core    文件:ODataBatchResource.java   
/**
 * レスポンスコードの説明を取得する.
 * @return レスポンスコードの説明(例:OK, No Content)
 */
public String getResponseMessage() {
    String message = null;

    switch (this.responseCode) {
    case HttpStatus.SC_NO_CONTENT:
        message = "No Content";
        break;

    case HttpStatus.SC_CREATED:
        message = "Created";
        break;

    case HttpStatus.SC_OK:
        message = "OK";
        break;

    default:
        message = "";
        break;
    }

    return message;
}
项目:personium-core    文件:UserDataListTopSkipTest.java   
/**
 * $skipに空文字を指定してUserDataの一覧をした場合に400エラーとなること.
 */
@Test
public final void $skipに空文字を指定してUserDataの一覧をした場合に400エラーとなること() {
    // ユーザデータの一覧取得
    TResponse res = Http.request("box/odatacol/list.txt")
            .with("cell", cellName)
            .with("box", boxName)
            .with("collection", colName)
            .with("entityType", entityTypeName)
            .with("query", "?\\$skip=")
            .with("accept", MediaType.APPLICATION_JSON)
            .with("token", PersoniumUnitConfig.getMasterToken())
            .returns()
            .statusCode(HttpStatus.SC_BAD_REQUEST)
            .debug();
    ODataCommon.checkErrorResponseBody(res, PersoniumCoreException.OData.QUERY_PARSE_ERROR_WITH_PARAM.getCode(),
            PersoniumCoreException.OData.QUERY_PARSE_ERROR_WITH_PARAM.params("$skip").getMessage());
}
项目:springboot-shiro-cas-mybatis    文件:SimpleHttpClient.java   
@Override
public boolean isValidEndPoint(final URL url) {
    Assert.notNull(this.httpClient);

    HttpEntity entity = null;

    try (final CloseableHttpResponse response = this.httpClient.execute(new HttpGet(url.toURI()))) {
        final int responseCode = response.getStatusLine().getStatusCode();

        for (final int acceptableCode : this.acceptableCodes) {
            if (responseCode == acceptableCode) {
                LOGGER.debug("Response code from server matched {}.", responseCode);
                return true;
            }
        }

        LOGGER.debug("Response code did not match any of the acceptable response codes. Code returned was {}",
                responseCode);

        if (responseCode == HttpStatus.SC_INTERNAL_SERVER_ERROR) {
            final String value = response.getStatusLine().getReasonPhrase();
            LOGGER.error("There was an error contacting the endpoint: {}; The error was:\n{}", url.toExternalForm(),
                    value);
        }

        entity = response.getEntity();
    } catch (final Exception e) {
        LOGGER.error(e.getMessage(), e);
    } finally {
        EntityUtils.consumeQuietly(entity);
    }
    return false;
}
项目:personium-core    文件:UserDataBatchTest.java   
/**
 * $batchの登録で不正フォーマットのデータを指定した場合に400が返却されること.
 */
@Test
public final void $batchの登録で不正フォーマットのデータを指定した場合に400が返却されること() {
    String body = START_BOUNDARY;
    String code = PersoniumCoreException.OData.BATCH_BODY_PARSE_ERROR.getCode();
    String err = PersoniumCoreException.OData.BATCH_BODY_PARSE_ERROR.getMessage();
    Http.request("box/odatacol/batch.txt")
            .with("cell", cellName)
            .with("box", boxName)
            .with("collection", colName)
            .with("boundary", BOUNDARY)
            .with("token", PersoniumUnitConfig.getMasterToken())
            .with("body", body)
            .returns()
            .statusCode(HttpStatus.SC_BAD_REQUEST)
            .checkErrorResponse(code, err);

}
项目:personium-core    文件:CellBulkDeletionTest.java   
/**
 * .
 */
@Test
public final void セル一括削除時にX_PERSONIUM_Recursiveヘッダにfalseを指定して412が返却されること() {
    // セルを作成する
    String cellName = "CellBulkDeletionTest";
    CellUtils.create(cellName, MASTER_TOKEN_NAME, -1);

    // セルの一括削除APIを実行する
    PersoniumRequest request = PersoniumRequest.delete(UrlUtils.cellRoot(cellName));
    request.header(HttpHeaders.AUTHORIZATION, BEARER_MASTER_TOKEN)
            .header("X-Personium-Recursive", "false");
    PersoniumResponse response = request(request);

    // セル削除APIを実行して、412が返却されることを確認
    try {
        assertEquals(HttpStatus.SC_PRECONDITION_FAILED, response.getStatusCode());
        ODataCommon.checkErrorResponseBody(response, PersoniumCoreException.Misc.PRECONDITION_FAILED.getCode(),
                PersoniumCoreException.Misc.PRECONDITION_FAILED
                        .params(PersoniumCoreUtils.HttpHeaders.X_PERSONIUM_RECURSIVE)
                        .getMessage());
    } finally {
        // セルを削除する
        request.header("X-Personium-Recursive", "true");
        request(request);
    }
}
项目:personium-core    文件:DeleteTest.java   
/**
 * testの後に実行する.
 */
@After
public final void afterCell() {
    PersoniumResponse res = null;
    if (this.cellInfo.cellId != null) {
        if (this.cellInfo.boxName != null) {
            // テストBox 削除
            res = restDelete(UrlUtils.cellCtl(this.cellInfo.cellName, Box.EDM_TYPE_NAME, this.cellInfo.boxName));
        }
        // テストCell 削除
        res = restDelete(UrlUtils.unitCtl(Cell.EDM_TYPE_NAME, this.cellInfo.cellId));
        // レスポンスコードのチェック
        if ((res.getStatusCode() == HttpStatus.SC_NO_CONTENT)
                || (res.getStatusCode() == HttpStatus.SC_OK)) {
            this.cellInfo.initial();
        }
        assertEquals(HttpStatus.SC_NO_CONTENT, res.getStatusCode());
    }
}
项目:personium-core    文件:MyPasswordTest.java   
/**
 * ユニットローカルユニットユーザトークン認証でパスワード変更を実行し403が返ること.
 * @throws TokenParseException 認証用トークンのパースエラー
 */
@Test
@Ignore // UUT promotion setting API invalidation.
public final void ユニットローカルユニットユーザトークン認証でパスワード変更を実行し403が返ること() throws TokenParseException {
    // 認証
    // アカウントにユニット昇格権限付与
    DavResourceUtils.setProppatch(Setup.TEST_CELL1, MASTER_TOKEN,
            "cell/proppatch-uluut.txt", HttpStatus.SC_MULTI_STATUS);

    // パスワード認証でのユニット昇格
    TResponse tokenResponse = Http.request("authnUnit/password-uluut.txt")
            .with("remoteCell", Setup.TEST_CELL1)
            .with("username", "account1")
            .with("password", "password1")
            .returns()
            .statusCode(HttpStatus.SC_OK);

    JSONObject json = tokenResponse.bodyAsJson();
    String uluut = (String) json.get(OAuth2Helper.Key.ACCESS_TOKEN);

    // ユニットローカルユニットユーザトークンを取得する
    PersoniumResponse res = requesttoMypassword(uluut, "password3", Setup.TEST_CELL1);
    assertEquals(403, res.getStatusCode());
}
项目:dhus-core    文件:InterruptibleHttpClient.java   
/**
 * Gets a part of the given URL, writes the content into the given channel.
 * Fails if the returned HTTP status is not "206 partial content".
 *
 * @param <IWC> a generic type for any class that implements InterruptibleChannel and WritableByteChannel
 * @param url to get
 * @param output written with the content of the HTTP response
 * @param etag value of the If-Range header
 * @param range_start range byte start (inclusive)
 * @param range_end range byte end (inclusive)
 *
 * @return a response (contains the HTTP Headers, the status code, ...)
 *
 * @throws IOException IO error
 * @throws InterruptedException interrupted
 * @throws RuntimeException containing the actual exception if it is not an instance of IOException
 */
public <IWC extends InterruptibleChannel & WritableByteChannel>
      HttpResponse interruptibleGetRange(String url, final IWC output, String etag, long range_start, long range_end)
      throws IOException, InterruptedException
{
   HttpGet get = new HttpGet(url);
   get.setHeader("If-Range", etag);
   get.setHeader("Range", String.format("bytes=%d-%d", range_start, range_end));
   // This validator throws an IOException if the response code is not 206 partial content
   ResponseValidator val = new ResponseValidator()
   {
      @Override
      public void validate(HttpResponse response) throws HttpException, IOException
      {
         if (response.getStatusLine().getStatusCode() != HttpStatus.SC_PARTIAL_CONTENT)
         {
            throw new IOException("Range request does not return partial content");
         }
      }
   };
   return interruptibleRequest(get, output, val);
}
项目:bootstrap    文件:ExceptionMapperIT.java   
/**
 * @see ExceptionMapperResource#throwWebApplication()
 */
@Test
public void testJaxRS405Error() throws IOException {
    final HttpGet httpget = new HttpGet(BASE_URI + RESOURCE + "/jax-rs");
    HttpResponse response = null;
    try {
        response = httpclient.execute(httpget);
        Assert.assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, response.getStatusLine().getStatusCode());
        final String content = IOUtils.toString(response.getEntity().getContent(), StandardCharsets.UTF_8);
        final Map<?, ?> result = new ObjectMapperTrim().readValue(content, HashMap.class);
        Assert.assertEquals("internal", result.get("code"));
        Assert.assertNull(result.get("cause"));
        Assert.assertEquals("HTTP 405 Method Not Allowed", result.get("message"));
    } finally {
        if (response != null) {
            response.getEntity().getContent().close();
        }
    }
}
项目:personium-core    文件:LogTest.java   
/**
 * デフォルトログが存在しないときにファイルに対するGETで200が返却されること.
 */
@Test
public final void デフォルトログが存在しないときにファイルに対するGETで200が返却されること() {
    try {
        // Cell作成
        CellUtils.create("TestCellForLogNotFound", MASTER_TOKEN_NAME, HttpStatus.SC_CREATED);

        TResponse response = Http.request("cell/log-get.txt")
                .with("METHOD", HttpMethod.GET)
                .with("token", AbstractCase.MASTER_TOKEN_NAME)
                .with("cellPath", "TestCellForLogNotFound")
                .with("collection", CURRENT_COLLECTION)
                .with("fileName", DEFAULT_LOG)
                .with("ifNoneMatch", "*")
                .returns();
        response.debug();
        response.statusCode(HttpStatus.SC_OK);
        String responseBody = response.getBody();
        // 空のレスポンスボディが返されることを確認
        assertEquals(0, responseBody.length());
    } finally {
        // Cell削除
        CellUtils.delete(MASTER_TOKEN_NAME, "TestCellForLogNotFound");
    }

}
项目:personium-core    文件:ComplexTypePropertyCreateTest.java   
/**
 * ComplexTypePropertyの_ComplexTypeNameが半角英数字以外の場合_BadRequestが返却されること.
 */
@Test
public final void ComplexTypePropertyの_ComplexTypeNameが半角英数字以外の場合_BadRequestが返却されること() {
    // リクエストパラメータ設定
    PersoniumRequest req = PersoniumRequest.post(ComplexTypePropertyUtils.CTP_REQUEST_URL);
    req.header(HttpHeaders.AUTHORIZATION, BEARER_MASTER_TOKEN);
    req.addJsonBody(ComplexTypePropertyUtils.CT_PROPERTY_NAME_KEY, CT_PROPERTY_NAME);
    req.addJsonBody(ComplexTypePropertyUtils.CT_PROPERTY_COMPLEXTYPE_NAME_KEY, "Ad.*s");
    req.addJsonBody(ComplexTypePropertyUtils.CT_PROPERTY_TYPE_KEY,
            EdmSimpleType.STRING.getFullyQualifiedTypeName());
    req.addJsonBody(ComplexTypePropertyUtils.CT_PROPERTY_NULLABLE_KEY, null);
    req.addJsonBody(ComplexTypePropertyUtils.CT_PROPERTY_DEFAULT_VALUE_KEY, null);
    req.addJsonBody(ComplexTypePropertyUtils.CT_PROPERTY_COLLECTION_KIND_KEY, null);

    // リクエスト実行
    PersoniumResponse response = request(req);

    // レスポンスチェック
    assertEquals(HttpStatus.SC_BAD_REQUEST, response.getStatusCode());
    checkErrorResponse(
            response.bodyAsJson(),
            PersoniumCoreException.OData.REQUEST_FIELD_FORMAT_ERROR.getCode(),
            PersoniumCoreException.OData.REQUEST_FIELD_FORMAT_ERROR.params(
                    ComplexTypePropertyUtils.CT_PROPERTY_COMPLEXTYPE_NAME_KEY).getMessage());
}
项目:personium-core    文件:UserDataListOrderbyTest.java   
/**
 * UserData一覧取得で$orderbyに文字列配列型のプロパティを指定した場合に400エラーとなること.
 */
@Test
public final void UserData一覧取得で$orderbyに文字列配列型のプロパティを指定した場合に400エラーとなること() {
    String cell = Setup.TEST_CELL1;
    String box = Setup.TEST_BOX1;
    String collection = Setup.SEARCH_ODATA;

    // 文字列配列型のEntityTypeに対して、登録されたプロパティをソート条件に指定する
    String entityType = "stringList";
    String query = "?\\$orderby=property3";
    TResponse response =
            UserDataUtils.list(cell, box, collection, entityType, query, MASTER_TOKEN_NAME,
                    HttpStatus.SC_BAD_REQUEST);
    checkErrorResponse(response.bodyAsJson(),
            PersoniumCoreException.OData.CANNOT_SPECIFY_THE_LIST_TYPE_TO_ORDERBY.getCode(),
            PersoniumCoreException.OData.CANNOT_SPECIFY_THE_LIST_TYPE_TO_ORDERBY.getMessage());
}
项目:personium-core    文件:AccountCreateTest.java   
/**
 * Account新規登録時に不正なパスワード文字列を指定して400になること.
 */
@Test
public final void Account新規登録時に不正なパスワード文字列を指定して400になること() {
    ArrayList<String> invalidStrings = new ArrayList<String>();
    invalidStrings.add("password=");
    invalidStrings.add("");
    invalidStrings.add("!aa");
    invalidStrings.add("pass%word");
    invalidStrings.add("%E3%81%82");
    invalidStrings.add("あ");
    invalidStrings.add("123456789012345678901234567890123");

    String testAccountName = "account_badpassword";
    String accLocHeader = null;

    try {
        for (String value : invalidStrings) {
            accLocHeader = createAccount(testAccountName, value, HttpStatus.SC_BAD_REQUEST);
        }
    } finally {
        if (accLocHeader != null) {
            deleteAccount(accLocHeader);
        }
    }
}
项目:personium-core    文件:UserDataListOrderbyTest.java   
/**
 * UserData一覧取得で$orderbyにプロパティ名を文字列で指定した場合にステータスコード400が返却されること.
 */
@Test
public final void UserData一覧取得で$orderbyにプロパティ名を文字列で指定した場合にステータスコード400が返却されること() {
    // ユーザデータの一覧取得
    String sdEntityTypeName = "SalesDetail";

    Http.request("box/odatacol/list.txt")
            .with("cell", cellName)
            .with("box", boxName)
            .with("collection", colName)
            .with("entityType", sdEntityTypeName)
            .with("query", "?\\$orderby=%27test%27")
            .with("accept", MediaType.APPLICATION_JSON)
            .with("token", PersoniumUnitConfig.getMasterToken())
            .returns()
            .statusCode(HttpStatus.SC_BAD_REQUEST)
            .debug();
}
项目:personium-core    文件:FileAccessControlTest.java   
/**
 * 親コレクションに権限がない_かつ_対象ファイルにwrite権限があるアカウントでファイルのDELETEを行い403エラーとなること.
 * @throws JAXBException ACLのパース失敗
 */
@Test
public void 親コレクションに権限がない_かつ_対象ファイルにwrite権限があるアカウントでファイルのDELETEを行い403エラーとなること() throws JAXBException {
    String token;
    String path = String.format("%s/%s", PARENT_COL_NAME, TARGET_FILE_NAME);

    // ACL設定
    setAcl(path, ROLE, "write");

    // アクセストークン取得
    token = getToken(ACCOUNT);

    // リクエスト実行
    TResponse res = DavResourceUtils.deleteWebDavFile(CELL_NAME, token, BOX_NAME, path);
    assertThat(res.getStatusCode()).isEqualTo(HttpStatus.SC_FORBIDDEN);
    PersoniumCoreException expectedException = PersoniumCoreException.Auth.NECESSARY_PRIVILEGE_LACKING;
    ODataCommon.checkErrorResponseBody(res, expectedException.getCode(), expectedException.getMessage());
}
项目:personium-core    文件:UserDataListWithNPQueryTest.java   
/**
 * ユーザODataのNavigationProperty経由一覧取得でexpandに最大プロパティ数を指定した場合正常に取得できること.
 */
@Test
public final void ユーザODataのNavigationProperty経由一覧取得でexpandに最大プロパティ数を指定した場合正常に取得できること() {
    String cell = Setup.TEST_CELL1;
    String box = Setup.TEST_BOX1;
    String collection = Setup.TEST_ODATA;

    String fromEntity = "SalesDetail";
    String toEntity = "Sales";
    String expandEntity1 = "Price";
    String expandEntity2 = "Product";
    String fromUserDataId = "userdata000";

    // NP経由一覧取得($expand)
    String expands = String.format("?\\$expand=_%s,_%s", expandEntity1, expandEntity2);
    UserDataUtils.listViaNP(cell, box, collection, fromEntity, fromUserDataId, toEntity, expands,
            HttpStatus.SC_OK);
}
项目:personium-core    文件:UserDataValidateTest.java   
/**
 * UserDataの新規作成時IDに有効桁長の最小値を指定した場合201になること.
 */
@SuppressWarnings("unchecked")
@Test
public final void UserDataの新規作成時IDに有効桁長の最小値を指定した場合201になること() {
    String userDataId = "1";

    JSONObject body = new JSONObject();
    body.put("__id", userDataId);
    body.put("dynamicProperty", "dynamicPropertyValue");

    String locationHeader = null;

    try {
        TResponse res = createUserData(body);
        locationHeader = res.getLocationHeader();
        res.statusCode(HttpStatus.SC_CREATED);

    } finally {
        if (locationHeader != null) {
            deleteOdataResource(locationHeader);
        }
    }
}
项目:personium-core    文件:ComplexTypePropertyCreateTest.java   
/**
 * ComplexTypePropertyの_ComplexTypeName属性がない場合_BadRequestが返却されること.
 */
@Test
public final void ComplexTypePropertyの_ComplexTypeName属性がない場合_BadRequestが返却されること() {
    // リクエストパラメータ設定
    PersoniumRequest req = PersoniumRequest.post(ComplexTypePropertyUtils.CTP_REQUEST_URL);
    req.header(HttpHeaders.AUTHORIZATION, BEARER_MASTER_TOKEN);
    req.addJsonBody(ComplexTypePropertyUtils.CT_PROPERTY_NAME_KEY, CT_PROPERTY_NAME);
    req.addJsonBody(ComplexTypePropertyUtils.CT_PROPERTY_TYPE_KEY,
            EdmSimpleType.STRING.getFullyQualifiedTypeName());
    req.addJsonBody(ComplexTypePropertyUtils.CT_PROPERTY_NULLABLE_KEY, null);
    req.addJsonBody(ComplexTypePropertyUtils.CT_PROPERTY_DEFAULT_VALUE_KEY, null);
    req.addJsonBody(ComplexTypePropertyUtils.CT_PROPERTY_COLLECTION_KIND_KEY, null);

    // リクエスト実行
    PersoniumResponse response = request(req);

    // レスポンスチェック
    assertEquals(HttpStatus.SC_BAD_REQUEST, response.getStatusCode());
    checkErrorResponse(
            response.bodyAsJson(),
            PersoniumCoreException.OData.INPUT_REQUIRED_FIELD_MISSING.getCode(),
            PersoniumCoreException.OData.INPUT_REQUIRED_FIELD_MISSING.params(
                    ComplexTypePropertyUtils.CT_PROPERTY_COMPLEXTYPE_NAME_KEY)
                    .getMessage());
}
项目:personium-core    文件:BoxRoleLinkTest.java   
/**
 * Boxに結びつかないRoleをexpandで展開できること.
 */
@Test
public final void Boxに結びつかないRoleをexpandで展開できること() {
    final String roleName = "boxLinkRole";
    try {
        // Role作成
        RoleUtils.create(CELL_NAME, TOKEN, roleName, null, HttpStatus.SC_CREATED);

        // Boxに紐付くRoleのlink一覧取得
        RoleUtils.list(TOKEN, CELL_NAME, "\\$expand=_Box&\\$filter=startswith(Name,'boxLinkRole')",
                HttpStatus.SC_OK);
    } finally {
        // ロールの削除
        RoleUtils.delete(CELL_NAME, TOKEN, roleName, null, -1);
    }
}
项目:personium-core    文件:AssociationEndCreateTest.java   
/**
 * AssociationEndの新規作成時_EntityType.Nameに指定可能な文字数の最小値を指定した場合201となること.
 */
@Test
public final void AssociationEndの新規作成時EntityType名に指定可能な文字数の最小値を指定した場合201となること() {
    String assocName = ASSOCIATION_END_NAME;
    String multiplicity = EdmMultiplicity.MANY.getSymbolString();
    String entityTypeName = "1";
    String locationHeader = null;
    String locationHeaderEntityType = null;

    try {
        TResponse resEntityType = createEntityType(entityTypeName);
        locationHeaderEntityType = resEntityType.getLocationHeader();

        TResponse res = createAssociationEnd(assocName, multiplicity, entityTypeName);
        locationHeader = res.getLocationHeader();
        res.statusCode(HttpStatus.SC_CREATED);
    } finally {
        if (locationHeader != null) {
            deleteOdataResource(locationHeader);
        }
        if (locationHeaderEntityType != null) {
            deleteOdataResource(locationHeaderEntityType);
        }
    }
}
项目:personium-core    文件:ComplexTypePropertyCreateViaNPTest.java   
/**
 * DefaultValueに制御コードを含むComplexTypePropertyをNP経由で作成した場合_レスポンスボディがエスケープされて返却されること.
 */
@Test
public final void DefaultValueに制御コードを含むComplexTypePropertyをNP経由で作成した場合_レスポンスボディがエスケープされて返却されること() {
    String ctplocationUrl =
            UrlUtils.complexTypeProperty(Setup.TEST_CELL1, Setup.TEST_BOX1, Setup.TEST_ODATA,
                    CT_PROPERTY_NAME,
                    COMPLEX_TYPE_NAME);

    try {
        TResponse response = ComplexTypePropertyUtils.createViaComplexTypePropertyNP(
                BEARER_MASTER_TOKEN, Setup.TEST_CELL1, Setup.TEST_BOX1, Setup.TEST_ODATA,
                COMPLEX_TYPE_NAME, CT_PROPERTY_NAME, EdmSimpleType.STRING.getFullyQualifiedTypeName(),
                false, "\\u0000", Property.COLLECTION_KIND_NONE, 201);

        // レスポンスチェック
        String resBody = response.getBody();
        assertTrue(resBody.contains("\\u0000"));
        assertFalse(resBody.contains("\u0000"));
    } finally {
        // 作成したComplexTypePropertyを削除
        assertEquals(HttpStatus.SC_NO_CONTENT, deleteOdataResource(ctplocationUrl).getStatusCode());
    }
}
项目:personium-core    文件:UpdateTest.java   
/**
 * Cellの更新の$formatがatomのテスト.
 */
@SuppressWarnings("unchecked")
@Test
public final void Cellの更新の$formatがatomのテスト() {

    // Cellを更新
    // リクエストヘッダをセット
    HashMap<String, String> headers = new HashMap<String, String>();
    headers.put(HttpHeaders.AUTHORIZATION, BEARER_MASTER_TOKEN);
    headers.put(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_ATOM_XML);
    headers.put(HttpHeaders.IF_MATCH, "*");

    // リクエストボディを生成
    JSONObject requestBody = new JSONObject();
    requestBody.put("Name", cellName);
    res = updateCellQuery(headers, requestBody, QUERY_FORMAT_ATOM);

    // Cell更新のレスポンスチェック
    // TODO $formatのチェックが実装されたら変更する必要がある
    assertEquals(HttpStatus.SC_NO_CONTENT, res.getStatusCode());

}
项目:personium-core    文件:ReadTest.java   
/**
 * Cell取得した場合にatomフォーマットでレスポンスが返却されること. $format → atom Accept → application/atom+xml
 */
@Test
public final void formatがatomかつacceptがjsonでCell取得した場合にatomフォーマットでレスポンスが返却されること() {
    String url = getUrl(this.cellId);
    // $format atom
    // Acceptヘッダ application/json
    HashMap<String, String> headers = new HashMap<String, String>();
    headers.put(HttpHeaders.AUTHORIZATION, BEARER_MASTER_TOKEN);
    headers.put(HttpHeaders.ACCEPT, MediaType.APPLICATION_JSON);
    this.setHeaders(headers);

    PersoniumResponse res = this.restGet(url + "?" + QUERY_FORMAT_ATOM);

    assertEquals(HttpStatus.SC_OK, res.getStatusCode());
    this.responseHeaderMap.put(HTTP.CONTENT_TYPE, MediaType.APPLICATION_ATOM_XML);
    this.checkHeaders(res);
    // Etagのチェック
    assertEquals(1, res.getResponseHeaders(HttpHeaders.ETAG).length);
    res.bodyAsXml();
}
项目:personium-core    文件:BarInstallTest.java   
/**
 * barファイルのルートディレクトリがbarではない場合に異常終了すること.
 */
@Test
public final void barファイルのルートディレクトリがbarではない場合に異常終了すること() {
    String reqCell = Setup.TEST_CELL1;
    String reqPath = INSTALL_TARGET;

    TResponse res = null;
    File barFile = new File(RESOURCE_PATH + BAR_FILE_WRONGDIR);
    byte[] body = BarInstallTestUtils.readBarFile(barFile);
    Map<String, String> headers = new LinkedHashMap<String, String>();
    headers.put(HttpHeaders.CONTENT_TYPE, REQ_CONTENT_TYPE);
    headers.put(HttpHeaders.CONTENT_LENGTH, String.valueOf(body.length));

    res = BarInstallTestUtils.request(REQUEST_NORM_FILE, reqCell, reqPath, headers, body);

    res.statusCode(HttpStatus.SC_BAD_REQUEST);
    String code = PersoniumCoreException.BarInstall.BAR_FILE_INVALID_STRUCTURES.getCode();
    String message = PersoniumCoreException.BarInstall.BAR_FILE_INVALID_STRUCTURES.
            params("bar/ bar/00_meta/ bar/00_meta/00_manifest.json bar/00_meta/90_rootprops.xml").getMessage();
    res.checkErrorResponse(code, message);
}
项目:personium-core    文件:UserDataBatchTest.java   
/**
 * $batchの登録でリクエストボディの末尾にバウンダリーがない場合に400が返却されること.
 */
@Test
public final void $batchの登録でリクエストボディの末尾にバウンダリーがない場合に400が返却されること() {
    String code = PersoniumCoreException.OData.BATCH_BODY_PARSE_ERROR.getCode();
    String err = PersoniumCoreException.OData.BATCH_BODY_PARSE_ERROR.getMessage();
    String body = START_BOUNDARY + BatchUtils.retrieveDeleteBody("Supplier('testBatch1')");
    Http.request("box/odatacol/batch.txt")
            .with("cell", cellName)
            .with("box", boxName)
            .with("collection", colName)
            .with("boundary", "changeset_cLzcDEEVPwvvoxS3yJTFTpRauSK_FAQ6mQtyo0aby93-SDP3lAs2A19a2uBb")
            .with("token", PersoniumUnitConfig.getMasterToken())
            .with("body", body)
            .returns()
            .statusCode(HttpStatus.SC_BAD_REQUEST)
            .checkErrorResponse(code, err)
            .debug();
}
项目:plugin-km-confluence    文件:ConfluencePluginResourceTest.java   
@Test
public void findAllByName() throws Exception {
    prepareMockHome();
    httpServer.stubFor(post(urlEqualTo("/dologin.action"))
            .willReturn(aResponse().withStatus(HttpStatus.SC_MOVED_TEMPORARILY).withHeader("Location", "/")));

    httpServer.stubFor(get(urlEqualTo("/rest/api/space?type=global&limit=100&start=0"))
            .willReturn(aResponse().withStatus(HttpStatus.SC_OK).withBody(IOUtils.toString(
                    new ClassPathResource("mock-server/confluence/confluence-spaces.json").getInputStream(), StandardCharsets.UTF_8))));
    httpServer.stubFor(
            get(urlEqualTo("/rest/api/space?type=global&limit=100&start=100")).willReturn(aResponse().withStatus(HttpStatus.SC_OK)
                    .withBody(IOUtils.toString(new ClassPathResource("mock-server/confluence/confluence-spaces2.json").getInputStream(),
                            StandardCharsets.UTF_8))));
    httpServer.start();

    final List<Space> projects = resource.findAllByName("service:km:confluence:dig", "p");
    Assert.assertEquals(10, projects.size());
    checkSpace(projects.get(4));
}
项目:personium-core    文件:MoveFileAccessControlTest.java   
/**
 * 移動元Collectionにwrite権限を持つアカウントでファイルのMOVEをした場合201となること.
 * @throws JAXBException ACLのパース失敗
 */
@Test
public void 移動元Collectionにwrite権限を持つアカウントでファイルのMOVEをした場合201となること() throws JAXBException {
    String token;
    String path = String.format("%s/%s/%s", BOX_NAME, SRC_COL_NAME, FILE_NAME);
    String destination = UrlUtils.box(CELL_NAME, BOX_NAME, DST_COL_NAME, FILE_NAME);

    try {
        // 事前準備
        setDefaultAcl(SRC_COL_NAME);
        setPrincipalAllAcl(DST_COL_NAME);

        DavResourceUtils.createWebDavFile(MASTER_TOKEN, CELL_NAME, path, FILE_BODY, MediaType.TEXT_PLAIN,
                HttpStatus.SC_CREATED);

        // write権限→201
        token = getToken(ACCOUNT_WRITE);
        DavResourceUtils.moveWebDav(token, CELL_NAME, path, destination, HttpStatus.SC_CREATED);

    } finally {
        DavResourceUtils.deleteWebDavFile(CELL_NAME, MASTER_TOKEN, BOX_NAME, DST_COL_NAME + "/" + FILE_NAME);
    }
}
项目:personium-core    文件:CollectionTest.java   
/**
 * ODataのコレクション作成テスト.
 */
@Test
public final void ODataのコレクション作成テスト() {

    String path = "odatacol";
    try {
        // コレクションの作成
        Http.request("box/mkcol-odata.txt")
                .with("cellPath", "testcell1")
                .with("boxPath", "box1")
                .with("path", path)
                .with("token", TOKEN)
                .returns()
                .statusCode(HttpStatus.SC_CREATED);

        // コレクションの取得(bodyあり)
        TResponse tresponseAll = Http.request("box/propfind-col-allprop.txt")
                .with("path", path)
                .with("depth", "0")
                .with("token", TOKEN)
                .returns();
        tresponseAll.statusCode(HttpStatus.SC_MULTI_STATUS);

        // p:odata の存在チェック
        serviceColTypeTest(tresponseAll.bodyAsXml(), "p:odata");
    } finally {

        // Boxの削除
        deleteTest(path, -1);
    }
}
项目:personium-core    文件:CollectionTest.java   
/**
 * Normal test.
 * Recursive delete OData collection.
 */
@Test
public void normal_recursive_delete_OData_collection() {
    String collectionName = "deleteOdata";
    String entityType = "deleteEntType";
    String accept = "application/xml";
    String complexTypeName = "deleteComplexType";
    String complexTypePropertyName = "deleteComplexTypeProperty";

    try {
        // Create collection.
        DavResourceUtils.createODataCollection(TOKEN, HttpStatus.SC_CREATED, Setup.TEST_CELL1, Setup.TEST_BOX1,
                collectionName);
        // Create entity type.
        Http.request("box/entitySet-post.txt")
                .with("cellPath", Setup.TEST_CELL1)
                .with("boxPath", Setup.TEST_BOX1)
                .with("odataSvcPath", collectionName)
                .with("token", "Bearer " + TOKEN)
                .with("accept", accept)
                .with("Name", entityType)
                .returns()
                .statusCode(HttpStatus.SC_CREATED);
        // Create complex type.
        ComplexTypeUtils.create(Setup.TEST_CELL1, Setup.TEST_BOX1,
                collectionName, complexTypeName, HttpStatus.SC_CREATED);
        // Create complex type property.
        ComplexTypePropertyUtils.create(Setup.TEST_CELL1, Setup.TEST_BOX1, collectionName, complexTypePropertyName,
                complexTypeName, "Edm.String", HttpStatus.SC_CREATED);

        // Recursive delete collection.
        deleteRecursive(collectionName, "true", HttpStatus.SC_NO_CONTENT);
    } finally {
        deleteRecursive(collectionName, "true", -1);
    }
}
项目:plugin-vm-vcloud    文件:VCloudPluginResourceTest.java   
@Test
public void checkStatusAuthenticationFailed() throws Exception {
    thrown.expect(ValidationJsonException.class);
    thrown.expect(MatcherUtil.validationMatcher(VCloudPluginResource.PARAMETER_API, "vcloud-login"));
    httpServer.stubFor(post(urlPathEqualTo("/api/sessions")).willReturn(aResponse().withStatus(HttpStatus.SC_FORBIDDEN)));
    httpServer.start();
    resource.checkStatus(subscriptionResource.getParametersNoCheck(subscription));
}
项目:personium-core    文件:ODataCommon.java   
/**
 * 2つのCellを登録し、2回目のステータスコードを確認する。Cell名が重複でなければ201、重複であれば409であることを確認.
 * @param req DcRequestオブジェクト
 * @param method HTTPメソッド
 * @param url URL
 * @param name1 1つ目に作成するCellの名前
 * @param name2 2つ目に作成するCellの名前
 */
public void cellCreateResCheck(PersoniumRequest req, String method, String url, String name1, String name2) {

    // 1回目
    req.header(HttpHeaders.AUTHORIZATION, BEARER_MASTER_TOKEN).addJsonBody("Name", name1);
    this.res = request(req);

    // Cell作成のレスポンスチェック
    // 201になることを確認
    assertEquals(HttpStatus.SC_CREATED, res.getStatusCode());

    // 2回目の要求
    PersoniumRequest req2 = null;
    if (method.equals(HttpMethod.POST)) {
        req2 = PersoniumRequest.post(url);
    }
    req2.header(HttpHeaders.AUTHORIZATION, BEARER_MASTER_TOKEN).addJsonBody("Name", name2);
    PersoniumResponse resConflict = request(req2);

    // Cell作成のレスポンスチェック
    try {
        if (name1.equals(name2)) {
            // 409であることを確認
            assertEquals(HttpStatus.SC_CONFLICT, resConflict.getStatusCode());
            // レスポンスボディのチェック
            checkErrorResponse(resConflict.bodyAsJson(),
                    PersoniumCoreException.OData.ENTITY_ALREADY_EXISTS.getCode());
        } else {
            // 201であることを確認
            assertEquals(HttpStatus.SC_CREATED, resConflict.getStatusCode());
        }
    } finally {
        cellDelete(resConflict);
    }
}
项目:personium-core    文件:ReadTest.java   
/**
 * Cell取得した場合にatomフォーマットでレスポンスが返却されること. $format → atom Accept → application/atom+xml
 */
@Test
public final void formatがatomでCell取得した場合にatomフォーマットでレスポンスが返却されること() {
    String url = getUrl(this.cellId);
    // $format atom
    // Acceptヘッダ なし
    PersoniumResponse res = this.restGet(url + "?" + QUERY_FORMAT_ATOM);

    assertEquals(HttpStatus.SC_OK, res.getStatusCode());
    this.responseHeaderMap.put(HTTP.CONTENT_TYPE, MediaType.APPLICATION_ATOM_XML);
    this.checkHeaders(res);
    // Etagのチェック
    assertEquals(1, res.getResponseHeaders(HttpHeaders.ETAG).length);
    res.bodyAsXml();
}
项目:aws-photosharing-example    文件:AlbumService.java   
@DELETE
@Path("/{albumId}")
@Produces(MediaType.APPLICATION_JSON)
@Secured
public Response deleteAlbum(@PathParam("albumId") Long albumId) {
    List<Long> albumList = new ArrayList();
    albumList.add(albumId);
    _facade.deleteAlbums(albumList, true);

    return Response.status(HttpStatus.SC_OK).build();
}
项目:personium-core    文件:AbstractCase.java   
/**
 * Create webdav collection.
 * @param cellName Cell name
 * @param boxName Box name
 * @param path Path
 * @return API response
 */
public TResponse createWebdavCollection(String cellName, String boxName, String path) {
    return Http.request("box/mkcol-normal-fullpath.txt")
            .with("cell", cellName)
            .with("box", boxName)
            .with("path", path)
            .with("token", AbstractCase.BEARER_MASTER_TOKEN)
            .returns().debug().statusCode(HttpStatus.SC_CREATED);
}
项目:personium-core    文件:BoxRoleLinkTest.java   
/**
 * Linkを登録する.
 */
private void createLink() {
    Http.request("links-create.txt")
            .with("token", AbstractCase.MASTER_TOKEN_NAME)
            .with("cellName", CELL_NAME)
            .with("entitySet", ENTITY_SET_BOX)
            .with("key", KEY)
            .with("navProp", NAV_PROP_ROLE)
            .with("uri", roleUri).returns()
            .statusCode(HttpStatus.SC_NO_CONTENT);
}
项目:personium-core    文件:RelationDeleteTest.java   
/**
 * Error test.
 * Delete box linked with relation.
 */
@SuppressWarnings("unchecked")
@Test
public final void error_delete_box_linked_with_relation() {
    String token = AbstractCase.MASTER_TOKEN_NAME;
    String boxName = "boxhuga";
    String relationName = "relationhuge";

    try {
        // Boxの作成
        BoxUtils.create(cellName, boxName, token, HttpStatus.SC_CREATED);

        // 準備。Relation、ロール作ってリンクさせる。
        JSONObject body = new JSONObject();
        body.put("Name", relationName);
        body.put("_Box.Name", null);
        RelationUtils.create(cellName, token, body, HttpStatus.SC_CREATED);
        LinksUtils.createLinks(cellName, Relation.EDM_TYPE_NAME, relationName, null,
                Box.EDM_TYPE_NAME, boxName, null, token, HttpStatus.SC_NO_CONTENT);

        // 削除できないことの確認
        BoxUtils.delete(cellName, token, boxName, HttpStatus.SC_CONFLICT);

        // リンクを解除し、削除できるようになることの確認
        LinksUtils.deleteLinks(cellName, Relation.EDM_TYPE_NAME, relationName, boxName,
                Box.EDM_TYPE_NAME, boxName, null, token, HttpStatus.SC_NO_CONTENT);
        BoxUtils.delete(cellName, token, boxName, HttpStatus.SC_NO_CONTENT);
    } finally {
        LinksUtils.deleteLinks(cellName, Relation.EDM_TYPE_NAME, relationName, boxName,
                Box.EDM_TYPE_NAME, boxName, null, token, -1);
        BoxUtils.delete(cellName, token, boxName, -1);
        RelationUtils.delete(cellName, token, relationName, null, -1);
    }
}