blob: 99957ad11a78e960aaaeb6d657ee8c0108ab5f7a [file] [log] [blame]
// Copyright (C) 2020 The Android Open Source Project
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package com.google.gerrit.plugins.codeowners.acceptance.restapi;
import static com.google.common.truth.Truth.assertThat;
import com.google.gerrit.acceptance.RestResponse;
import com.google.gerrit.acceptance.TestAccount;
import com.google.gerrit.extensions.restapi.IdString;
import com.google.gerrit.plugins.codeowners.util.JgitPath;
import org.junit.Before;
import org.junit.Test;
/**
* Acceptance test for the {@link
* com.google.gerrit.plugins.codeowners.restapi.GetCodeOwnersForPathInChange} REST endpoint. that
* require using via REST.
*
* <p>Acceptance test for the {@link
* com.google.gerrit.plugins.codeowners.restapi.GetCodeOwnersForPathInChange} REST endpoint that can
* use the Java API are implemented in {@link
* com.google.gerrit.plugins.codeowners.acceptance.api.GetCodeOwnersForPathInChangeIT}.
*/
public class GetCodeOwnersForPathInChangeRestIT extends AbstractGetCodeOwnersForPathRestIT {
private String changeId;
@Before
public void createTestChange() throws Exception {
TestAccount changeOwner =
accountCreator.create(
"changeOwner", "changeOwner@example.com", "ChangeOwner", /* displayName= */ null);
// Create a change that contains the file that is used in the tests. This is necessary since
// CodeOwnersInChangeCollection rejects requests for paths that are not present in the change.
changeId =
createChange(changeOwner, "Test Change", JgitPath.of(TEST_PATH).get(), "some content")
.getChangeId();
}
@Override
protected String getUrl(String path) {
return String.format(
"/changes/%s/revisions/%s/code_owners/%s",
IdString.fromDecoded(changeId),
IdString.fromDecoded("current"),
IdString.fromDecoded(path));
}
@Test
public void cannotListCodeOwners() throws Exception {
RestResponse r =
adminRestSession.get(
String.format(
"/changes/%s/revisions/%s/code_owners/",
IdString.fromDecoded(changeId), IdString.fromDecoded("current")));
r.assertNotFound();
}
@Test
public void cannotGetCodeOwnersForNonExistingPath() throws Exception {
String nonExistingPath = "/some/non/existing/path";
RestResponse r = adminRestSession.get(getUrl(nonExistingPath));
r.assertNotFound();
assertThat(r.getEntityContent()).contains(String.format("Not found: %s", nonExistingPath));
}
}