]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-8994 Add integration test and fix existing members tests
authorGrégoire Aubert <gregoire.aubert@sonarsource.com>
Fri, 31 Mar 2017 12:15:11 +0000 (14:15 +0200)
committerGrégoire Aubert <gregaubert@users.noreply.github.com>
Fri, 31 Mar 2017 12:56:31 +0000 (14:56 +0200)
it/it-tests/src/test/java/it/organization/OrganizationMembershipTest.java
it/it-tests/src/test/java/pageobjects/organization/MemberItem.java

index 6cfd268b4ff210d11afeb00f94aa25988566eefd..efc78a946cb8a91a2e12e6067080f920aa186657 100644 (file)
@@ -133,21 +133,21 @@ public class OrganizationMembershipTest {
   @Test
   public void should_display_members_page() {
     String orgKey = createOrganization();
-    String user1 = createUser();
-    String user2 = createUser();
+    userRule.createUser("foo", "pwd");
+    userRule.createUser("bar", "pwd");
     createUser();
 
-    adminClient.organizations().addMember(orgKey, user1);
-    adminClient.organizations().addMember(orgKey, user2);
+    adminClient.organizations().addMember(orgKey, "foo");
+    adminClient.organizations().addMember(orgKey, "bar");
 
     MembersPage page = nav.openOrganizationMembers(orgKey);
     page
       .canNotAddMember()
       .shouldHaveTotal(3);
     page.getMembersByIdx(0).shouldBeNamed("admin", "Administrator");
-    page.getMembersByIdx(1).shouldBeNamed(user1, user1);
+    page.getMembersByIdx(1).shouldBeNamed("bar", "bar");
     page.getMembersByIdx(2)
-      .shouldBeNamed(user2, user2)
+      .shouldBeNamed("foo", "foo")
       .shouldNotHaveActions();
   }
 
@@ -175,16 +175,16 @@ public class OrganizationMembershipTest {
   @Test
   public void admin_can_add_members() {
     String orgKey = createOrganization();
-    String user1 = createUser();
+    userRule.createUser("foo", "pwd");
     createUser();
 
     MembersPage page = nav.logIn().asAdmin().openOrganizationMembers(orgKey);
     page
       .shouldHaveTotal(1)
-      .addMember(user1)
+      .addMember("foo")
       .shouldHaveTotal(2);
     page.getMembersByIdx(0).shouldBeNamed("admin", "Administrator").shouldHaveGroups(1);
-    page.getMembersByIdx(1).shouldBeNamed(user1, user1).shouldHaveGroups(0);
+    page.getMembersByIdx(1).shouldBeNamed("foo", "foo").shouldHaveGroups(0);
   }
 
   @Test
@@ -222,6 +222,22 @@ public class OrganizationMembershipTest {
       .shouldHaveGroups(0);
   }
 
+  @Test
+  public void groups_count_should_be_updated_when_a_member_was_just_added() {
+    String orgKey = createOrganization();
+    String user1 = createUser();
+
+    MembersPage page = nav.logIn().asAdmin().openOrganizationMembers(orgKey);
+    page
+      .addMember(user1)
+      .getMembersByIdx(1)
+      .shouldHaveGroups(0)
+      .manageGroupsOpen()
+      .manageGroupsSelect("owners")
+      .manageGroupsSave()
+      .shouldHaveGroups(1);
+  }
+
   private void verifyMembership(String login, String organizationKey, boolean isMember) {
     // TODO replace with search member WS
     int count = orchestrator.getDatabase().countSql(format("SELECT COUNT(1) FROM organization_members om " +
index e3a4f543203ca23a9c0cedb43f104b62d6915262..f3099f5ec7fc319e00214f516a3ec777d2ba3d81 100644 (file)
 
 package pageobjects.organization;
 
+import com.codeborne.selenide.CollectionCondition;
 import com.codeborne.selenide.Condition;
 import com.codeborne.selenide.ElementsCollection;
 import com.codeborne.selenide.SelenideElement;
 
 import static com.codeborne.selenide.Selenide.$;
-import static org.assertj.core.api.Assertions.assertThat;
 
 public class MemberItem {
   private final SelenideElement elt;
@@ -44,18 +44,18 @@ public class MemberItem {
   public MemberItem shouldHaveGroups(Integer groups) {
     ElementsCollection tds = this.elt.$$("td");
     tds.get(2).should(Condition.exist);
-    assertThat(tds.get(2).text()).contains(groups.toString());
+    tds.get(2).shouldHave(Condition.text(groups.toString()));
     return this;
   }
 
   public MemberItem shouldNotHaveActions() {
-    assertThat(this.elt.$$("td").size()).isLessThan(3);
+    this.elt.$$("td").shouldHave(CollectionCondition.sizeLessThan(3));
     return this;
   }
 
   public MemberItem removeMembership() {
     ElementsCollection tds = this.elt.$$("td");
-    assertThat(tds.size()).isGreaterThan(3);
+    tds.shouldHave(CollectionCondition.sizeGreaterThan(3));
     SelenideElement actionTd = tds.get(3);
     actionTd.$("button").should(Condition.exist).click();
     actionTd.$$(".dropdown-menu > li").get(2).shouldBe(Condition.visible).click();
@@ -66,7 +66,7 @@ public class MemberItem {
 
   public MemberItem manageGroupsOpen() {
     ElementsCollection tds = this.elt.$$("td");
-    assertThat(tds.size()).isGreaterThan(3);
+    tds.shouldHave(CollectionCondition.sizeGreaterThan(3));
     SelenideElement actionTd = tds.get(3);
     actionTd.$("button").should(Condition.exist).click();
     actionTd.$$(".dropdown-menu > li").get(0).shouldBe(Condition.visible).click();