private void verifyResult(String json, String expectedJsonFile) { assertJson(json).ignoreFields("id").isSimilarTo(getClass().getResource(getClass().getSimpleName() + "/" + expectedJsonFile)); } }
@Test public void ignore_fields() { assertJson("{\"foo\": \"bar\"}") .ignoreFields("ignore-me") .isSimilarTo("{\"foo\": \"bar\", \"ignore-me\": \"value\"}"); } }
@Test public void create_full_permission_template() throws Exception { loginAsAdmin(db.getDefaultOrganization()); TestResponse result = newRequest("Finance", "Permissions for financially related projects", ".*\\.finance\\..*"); assertJson(result.getInput()) .ignoreFields("id") .isSimilarTo(getClass().getResource("create_template-example.json")); PermissionTemplateDto finance = selectTemplateInDefaultOrganization("Finance"); assertThat(finance.getName()).isEqualTo("Finance"); assertThat(finance.getDescription()).isEqualTo("Permissions for financially related projects"); assertThat(finance.getKeyPattern()).isEqualTo(".*\\.finance\\..*"); assertThat(finance.getUuid()).isNotEmpty(); assertThat(finance.getCreatedAt().getTime()).isEqualTo(NOW); assertThat(finance.getUpdatedAt().getTime()).isEqualTo(NOW); }
@Test public void update_all_permission_template_fields() throws Exception { loginAsAdmin(db.getDefaultOrganization()); String result = call(template.getUuid(), "Finance", "Permissions for financially related projects", ".*\\.finance\\..*"); assertJson(result) .ignoreFields("id") .isSimilarTo(getClass().getResource("update_template-example.json")); PermissionTemplateDto finance = selectTemplateInDefaultOrganization("Finance"); assertThat(finance.getName()).isEqualTo("Finance"); assertThat(finance.getDescription()).isEqualTo("Permissions for financially related projects"); assertThat(finance.getKeyPattern()).isEqualTo(".*\\.finance\\..*"); assertThat(finance.getUuid()).isEqualTo(template.getUuid()); assertThat(finance.getCreatedAt()).isEqualTo(template.getCreatedAt()); assertThat(finance.getUpdatedAt().getTime()).isEqualTo(1440512328743L); }
@Test public void display_all_project_permissions() { String result = newRequest().execute().getInput(); assertJson(result) .ignoreFields("permissions") .isSimilarTo(getClass().getResource("SearchProjectPermissionsActionTest/display_all_project_permissions.json")); }
@Test public void empty_result() { String result = newRequest().execute().getInput(); assertJson(result) .ignoreFields("permissions") .isSimilarTo(getClass().getResource("SearchProjectPermissionsActionTest/empty.json")); }
@Test public void example_with_key() { ComponentDto project = db.components().insertPrivateProject(); logInAsProjectAdministrator(project); String result = ws.newRequest() .setMethod("POST") .setParam(PARAM_PROJECT_KEY, project.getDbKey()) .setParam(PARAM_NAME, "Custom") .setParam(PARAM_URL, "http://example.org") .execute().getInput(); assertJson(result).ignoreFields("id").isSimilarTo(getClass().getResource("create-example.json")); }
@Test public void example_with_id() { ComponentDto project = db.components().insertPrivateProject(); logInAsProjectAdministrator(project); String result = ws.newRequest() .setMethod("POST") .setParam(PARAM_PROJECT_ID, project.uuid()) .setParam(PARAM_NAME, "Custom") .setParam(PARAM_URL, "http://example.org") .execute().getInput(); assertJson(result).ignoreFields("id").isSimilarTo(getClass().getResource("create-example.json")); }
@Test public void verify_response_example() { authenticateWithPasscode(); when(healthChecker.checkNode()) .thenReturn(newHealthCheckBuilder() .setStatus(Health.Status.RED) .addCause("Application node app-1 is RED") .build()); TestResponse response = underTest.newRequest().execute(); assertJson(response.getInput()) .ignoreFields("nodes") .isSimilarTo(underTest.getDef().responseExampleAsString()); }
@Test public void json_example() { UserDto user1 = db.users().insertUser(u -> u.setLogin("grace.hopper")); UserDto user2 = db.users().insertUser(u -> u.setLogin("ada.lovelace")); logInAsSystemAdministrator(); String response = ws.newRequest() .setMediaType(MediaTypes.JSON) .setParam(PARAM_LOGIN, user1.getLogin()) .setParam(PARAM_NAME, TOKEN_NAME) .execute().getInput(); assertJson(response).ignoreFields("createdAt").isSimilarTo(getClass().getResource("generate-example.json")); }
@Test public void json_example() { OrganizationDto organization = db.organizations().insert(); userSession.logIn("admin").addPermission(ADMINISTER_QUALITY_GATES, organization); QualityGateDto defaultQualityGate = db.qualityGates().insertQualityGate(organization, qualityGate -> qualityGate.setName("Sonar way").setBuiltIn(true)); db.qualityGates().insertQualityGate(organization, qualityGate -> qualityGate.setName("Sonar way - Without Coverage").setBuiltIn(false)); db.qualityGates().setDefaultQualityGate(organization, defaultQualityGate); String response = ws.newRequest() .setParam("organization", organization.getKey()) .execute() .getInput(); assertJson(response).ignoreFields("id", "default") .isSimilarTo(getClass().getResource("list-example.json")); }
@Test public void empty_result_without_views() { db.organizations().setDefaultTemplates(db.getDefaultOrganization(), "AU-Tpxb--iU5OvuD2FLy", "AU-TpxcA-iU5OvuD2FLz", "AU-TpxcA-iU5OvuD2FLx"); String result = newRequest(underTestWithoutViews).execute().getInput(); assertJson(result) .withStrictArrayOrder() .ignoreFields("permissions") .isSimilarTo("{" + " \"permissionTemplates\": []," + " \"defaultTemplates\": [" + " {" + " \"templateId\": \"AU-Tpxb--iU5OvuD2FLy\"," + " \"qualifier\": \"TRK\"" + " }" + " ]" + "}"); }
@Test public void json_example() { OrganizationDto organization = db.organizations().insert(); ComponentDto project = db.components().insertPrivateProject(organization); QGateWithOrgDto qualityGate = db.qualityGates().insertQualityGate(organization, qg -> qg.setName("My team QG")); db.qualityGates().associateProjectToQualityGate(project, qualityGate); logInAsProjectUser(project); String result = ws.newRequest() .setParam("project", project.getKey()) .setParam("organization", organization.getKey()) .execute() .getInput(); assertJson(result) .ignoreFields("id") .isSimilarTo(getClass().getResource("get_by_project-example.json")); }
@Test public void empty_result() { db.organizations().setDefaultTemplates(db.getDefaultOrganization(), "AU-Tpxb--iU5OvuD2FLy", "AU-Tpxb--iU5OvuD2FLz", "AU-TpxcA-iU5OvuD2FLx"); String result = newRequest(wsTester).execute().getInput(); assertJson(result) .withStrictArrayOrder() .ignoreFields("permissions") .isSimilarTo("{" + " \"permissionTemplates\": []," + " \"defaultTemplates\": [" + " {" + " \"templateId\": \"AU-Tpxb--iU5OvuD2FLy\"," + " \"qualifier\": \"TRK\"" + " }," + " {" + " \"templateId\": \"AU-Tpxb--iU5OvuD2FLz\"," + " \"qualifier\": \"APP\"" + " }," + " {" + " \"templateId\": \"AU-TpxcA-iU5OvuD2FLx\"," + " \"qualifier\": \"VW\"" + " }" + " ]" + "}"); }
@Test public void test_json_example() { insertDefaultGroup(db.getDefaultOrganization(), "users", 17); insertGroup(db.getDefaultOrganization(), "administrators", 2); loginAsDefaultOrgAdmin(); String response = ws.newRequest().setMediaType(MediaTypes.JSON).execute().getInput(); assertJson(response).ignoreFields("id").isSimilarTo(ws.getDef().responseExampleAsString()); }
@Test public void example() { OrganizationDto organization = db.organizations().insert(); logInAsQProfileAdministrator(organization); QProfileDto parent = db.qualityProfiles().insert(organization, p -> p.setKee("AU-TpxcA-iU5OvuD2FL2")); QProfileDto profile = db.qualityProfiles().insert(organization, p -> p.setKee("old") .setLanguage("Java") .setParentKee(parent.getKee())); String profileUuid = profile.getRulesProfileUuid(); String response = tester.newRequest() .setMethod("POST") .setParam("fromKey", profile.getKee()) .setParam("toName", "My New Profile") .execute() .getInput(); assertJson(response).ignoreFields("key").isSimilarTo(getClass().getResource("copy-example.json")); }
@Test public void test_example() { insertProjectsAuthorizedForUser( ComponentTesting.newPrivateProjectDto(db.getDefaultOrganization()).setDbKey("org.jenkins-ci.plugins:sonar").setName("Jenkins Sonar Plugin"), ComponentTesting.newPrivateProjectDto(db.getDefaultOrganization()).setDbKey("org.codehaus.sonar-plugins:sonar-ant-task").setName("Sonar Ant Task"), ComponentTesting.newPrivateProjectDto(db.getDefaultOrganization()).setDbKey("org.codehaus.sonar-plugins:sonar-build-breaker-plugin").setName("Sonar Build Breaker Plugin")); String result = call(null, null, null); assertJson(result).ignoreFields("id").isSimilarTo(ws.getDef().responseExampleAsString()); }
@Test public void test_json_example() { UserDto user = insertUser(); GroupDto usersGroup = insertDefaultGroup("sonar-users", "Sonar Users"); insertGroup("sonar-admins", "Sonar Admins"); addUserToGroup(user, usersGroup); String response = ws.newRequest() .setMediaType(MediaTypes.JSON) .setParam("login", USER_LOGIN) .setParam(Param.SELECTED, ALL.value()) .setParam(Param.PAGE_SIZE, "25") .setParam(Param.PAGE, "1") .execute().getInput(); assertJson(response).ignoreFields("id").isSimilarTo(ws.getDef().responseExampleAsString()); }
@Test public void template_groups_of_json_example() { GroupDto adminGroup = insertGroupOnDefaultOrganization("sonar-administrators", "System administrators"); GroupDto userGroup = insertGroupOnDefaultOrganization("sonar-users", "Any new users created will automatically join this group"); PermissionTemplateDto template = addTemplateToDefaultOrganization(); addGroupToTemplate(newPermissionTemplateGroup(ISSUE_ADMIN, template.getId(), adminGroup.getId())); addGroupToTemplate(newPermissionTemplateGroup(ISSUE_ADMIN, template.getId(), userGroup.getId())); // Anyone group addGroupToTemplate(newPermissionTemplateGroup(USER, template.getId(), null)); addGroupToTemplate(newPermissionTemplateGroup(ISSUE_ADMIN, template.getId(), null)); commit(); loginAsAdmin(db.getDefaultOrganization()); String response = newRequest() .setParam(PARAM_PERMISSION, ISSUE_ADMIN) .setParam(PARAM_TEMPLATE_ID, template.getUuid()) .execute() .getInput(); assertJson(response) .ignoreFields("id") .withStrictArrayOrder() .isSimilarTo(getClass().getResource("template_groups-example.json")); }
@Test public void json_example() { OrganizationDto organization = db.organizations().insert(); userSession.logIn("admin").addPermission(ADMINISTER_QUALITY_GATES, organization); QGateWithOrgDto qualityGate = db.qualityGates().insertQualityGate(organization, qg -> qg.setName("My Quality Gate")); QGateWithOrgDto qualityGate2 = db.qualityGates().insertQualityGate(organization, qg -> qg.setName("My Quality Gate 2")); db.qualityGates().setDefaultQualityGate(organization, qualityGate2); MetricDto blockerViolationsMetric = db.measures().insertMetric(m -> m.setKey("blocker_violations")); MetricDto criticalViolationsMetric = db.measures().insertMetric(m -> m.setKey("tests")); db.qualityGates().addCondition(qualityGate, blockerViolationsMetric, c -> c.setOperator("GT").setErrorThreshold("0")); db.qualityGates().addCondition(qualityGate, criticalViolationsMetric, c -> c.setOperator("LT").setErrorThreshold("10")); String response = ws.newRequest() .setParam("name", qualityGate.getName()) .setParam("organization", organization.getKey()) .execute() .getInput(); assertJson(response).ignoreFields("id") .isSimilarTo(getClass().getResource("show-example.json")); }