From 8d6dc96b34194070b8b891ed38945585f932007b Mon Sep 17 00:00:00 2001 From: Edwin Kempin Date: Wed, 6 Jul 2016 16:29:05 +0200 Subject: [PATCH] Use extension API for CreateGroupIT On the CI server some the tests failed regularly (e.g. see [1]), using the extension API instead of SSH should make it stable. Also rename the test methods to make the names shorter and easier to understand. [1] https://gerrit-ci.gerritforge.com/job/Gerrit-verifier-notedb/6841/consoleText Change-Id: If8c31aac38ed7f1d7e9936484e4dfbec6c95760b Signed-off-by: Edwin Kempin --- .../acceptance/rest/group/CreateGroupIT.java | 75 ++++++++++++++++ .../gerrit/acceptance/ssh/CreateGroupIT.java | 87 ------------------- 2 files changed, 75 insertions(+), 87 deletions(-) create mode 100644 gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/group/CreateGroupIT.java delete mode 100644 gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/ssh/CreateGroupIT.java diff --git a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/group/CreateGroupIT.java b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/group/CreateGroupIT.java new file mode 100644 index 0000000000..31e7382681 --- /dev/null +++ b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/group/CreateGroupIT.java @@ -0,0 +1,75 @@ +// Copyright (C) 2016 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.acceptance.rest.group; + +import static com.google.common.truth.Truth.assertThat; + +import com.google.gerrit.acceptance.AbstractDaemonTest; +import com.google.gerrit.extensions.api.groups.GroupInput; +import com.google.gerrit.extensions.restapi.ResourceConflictException; +import com.google.gerrit.reviewdb.client.AccountGroup; + +import org.junit.Test; + +public class CreateGroupIT extends AbstractDaemonTest { + + @Test + public void createGroup() throws Exception { + GroupInput in = new GroupInput(); + in.name = name("group"); + gApi.groups().create(in); + AccountGroup accountGroup = + groupCache.get(new AccountGroup.NameKey(in.name)); + assertThat(accountGroup).isNotNull(); + assertThat(accountGroup.getName()).isEqualTo(in.name); + } + + @Test + public void createGroupAlreadyExists() throws Exception { + GroupInput in = new GroupInput(); + in.name = name("group"); + gApi.groups().create(in); + assertThat(groupCache.get(new AccountGroup.NameKey(in.name))).isNotNull(); + + exception.expect(ResourceConflictException.class); + exception.expectMessage("group '" + in.name + "' already exists"); + gApi.groups().create(in); + } + + @Test + public void createGroupWithDifferentCase() throws Exception { + GroupInput in = new GroupInput(); + in.name = name("group"); + gApi.groups().create(in); + assertThat(groupCache.get(new AccountGroup.NameKey(in.name))).isNotNull(); + + GroupInput inLowerCase = new GroupInput(); + inLowerCase.name = in.name.toUpperCase(); + gApi.groups().create(inLowerCase); + assertThat(groupCache.get(new AccountGroup.NameKey(inLowerCase.name))) + .isNotNull(); + } + + @Test + public void createSystemGroupWithDifferentCase() throws Exception { + String registeredUsers = "Registered Users"; + GroupInput in = new GroupInput(); + in.name = registeredUsers.toUpperCase(); + + exception.expect(ResourceConflictException.class); + exception.expectMessage("group '" + registeredUsers + "' already exists"); + gApi.groups().create(in); + } +} diff --git a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/ssh/CreateGroupIT.java b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/ssh/CreateGroupIT.java deleted file mode 100644 index 7f176cf121..0000000000 --- a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/ssh/CreateGroupIT.java +++ /dev/null @@ -1,87 +0,0 @@ -// Copyright (C) 2016 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.acceptance.ssh; - -import static com.google.common.truth.Truth.assertThat; -import static com.google.common.truth.Truth.assert_; - -import com.google.gerrit.acceptance.AbstractDaemonTest; -import com.google.gerrit.reviewdb.client.AccountGroup; - -import org.junit.Test; - -public class CreateGroupIT extends AbstractDaemonTest { - - @Test - public void withDuplicateInternalGroupCaseSensitiveName_Conflict() - throws Exception { - String newGroupName = "dupGroupA"; - adminRestSession.put("/groups/" + newGroupName); - adminSshSession.exec("gerrit create-group " + newGroupName); - assert_().withFailureMessage(adminSshSession.getError()) - .that(adminSshSession.hasError()).isTrue(); - } - - @Test - public void withDuplicateInternalGroupCaseInsensitiveName() - throws Exception { - String newGroupName = "dupGroupB"; - String newGroupNameLowerCase = newGroupName.toLowerCase(); - - adminRestSession.put("/groups/" + newGroupName); - adminSshSession.exec("gerrit create-group " + newGroupNameLowerCase); - assert_().withFailureMessage(adminSshSession.getError()) - .that(adminSshSession.hasError()).isFalse(); - assertThat(groupCache.get(new AccountGroup.NameKey(newGroupName))) - .isNotNull(); - assertThat(groupCache.get(new AccountGroup.NameKey(newGroupNameLowerCase))) - .isNotNull(); - } - - @Test - public void withDuplicateSystemGroupCaseSensitiveName_Conflict() - throws Exception { - String newGroupName = "Registered Users"; - adminSshSession.exec("gerrit create-group '" + newGroupName + "'"); - assert_().withFailureMessage(adminSshSession.getError()) - .that(adminSshSession.hasError()).isTrue(); - assertThat(adminSshSession.getError()) - .isEqualTo("fatal: group '" + newGroupName + "' already exists\n"); - } - - @Test - public void withDuplicateSystemGroupCaseInsensitiveName_Conflict() - throws Exception { - String newGroupName = "Registered Users"; - adminSshSession - .exec("gerrit create-group '" + newGroupName.toUpperCase() + "'"); - assert_().withFailureMessage(adminSshSession.getError()) - .that(adminSshSession.hasError()).isTrue(); - assertThat(adminSshSession.getError()) - .isEqualTo("fatal: group '" + newGroupName + "' already exists\n"); - } - - @Test - public void withNonDuplicateGroupName() throws Exception { - String newGroupName = "newGroupB"; - adminSshSession.exec("gerrit create-group " + newGroupName); - assert_().withFailureMessage(adminSshSession.getError()) - .that(adminSshSession.hasError()).isFalse(); - AccountGroup accountGroup = - groupCache.get(new AccountGroup.NameKey(newGroupName)); - assertThat(accountGroup).isNotNull(); - assertThat(accountGroup.getName()).isEqualTo(newGroupName); - } -}