public ResourceTypes(ResourceTypeTree[] trees) { requireNonNull(trees); Map<String, ResourceTypeTree> treeMap = new LinkedHashMap<>(); Map<String, ResourceType> typeMap = new LinkedHashMap<>(); Collection<ResourceType> rootsSet = new LinkedHashSet<>(); for (ResourceTypeTree tree : trees) { rootsSet.add(tree.getRootType()); for (ResourceType type : tree.getTypes()) { if (treeMap.containsKey(type.getQualifier())) { throw new IllegalStateException("Qualifier " + type.getQualifier() + " is defined in several trees"); } treeMap.put(type.getQualifier(), tree); typeMap.put(type.getQualifier(), type); } } treeByQualifier = unmodifiableMap(new LinkedHashMap<>(treeMap)); typeByQualifier = unmodifiableMap(new LinkedHashMap<>(typeMap)); rootTypes = unmodifiableList(new ArrayList<>(rootsSet)); }
public List<String> getLeavesQualifiers(String qualifier) { ResourceTypeTree tree = getTree(qualifier); if (tree != null) { return tree.getLeaves(); } return Collections.emptyList(); }
public ResourceTypeTree build() { Collection<String> children = relations.values(); for (ResourceType type : types) { if (!children.contains(type.getQualifier())) { root = type; break; } } return new ResourceTypeTree(this); } }
@Test public void provide_types() { ResourceTypeTree tree = DefaultResourceTypes.get(); assertThat(tree.getTypes()).hasSize(5); assertThat(tree.getChildren(Qualifiers.PROJECT)).containsExactly(Qualifiers.MODULE); } }
@Test(expected = IllegalStateException.class) public void fail_on_duplicated_qualifier() { ResourceTypeTree tree1 = ResourceTypeTree.builder() .addType(ResourceType.builder("foo").build()) .build(); ResourceTypeTree tree2 = ResourceTypeTree.builder() .addType(ResourceType.builder("foo").build()) .build(); new ResourceTypes(new ResourceTypeTree[] {tree1, tree2}); }
@Test public void getRoot() { assertThat(tree.getRootType()).isEqualTo(ResourceType.builder("TRK").build()); }
@Test public void getChildren() { assertThat(tree.getChildren("TRK")).containsOnly("DIR"); assertThat(tree.getChildren("DIR")).containsOnly("FIL", "UTS"); assertThat(tree.getChildren("FIL")).isEmpty(); }
@Test(expected = IllegalArgumentException.class) public void forbidDuplicatedType() { ResourceTypeTree.builder() .addType(ResourceType.builder("TRK").build()) .addType(ResourceType.builder("TRK").build()) .build(); } }
@Test public void test_example_response() { init(createPages()); OrganizationDto organizationDto = db.organizations().insertForKey("my-org-1"); ComponentDto project = newPrivateProjectDto(organizationDto, "ABCD") .setDbKey("org.codehaus.sonar:sonar") .setName("Sonarqube") .setDescription("Open source platform for continuous inspection of code quality"); componentDbTester.insertComponent(project); SnapshotDto analysis = newAnalysis(project) .setCreatedAt(parseDateTime("2016-12-06T11:44:00+0200").getTime()) .setVersion("6.3") .setLast(true); componentDbTester.insertSnapshot(analysis); when(resourceTypes.get(project.qualifier())).thenReturn(DefaultResourceTypes.get().getRootType()); UserDto user = db.users().insertUser("obiwan"); propertyDbTester.insertProperty(new PropertyDto().setKey("favourite").setResourceId(project.getId()).setUserId(user.getId())); addQualityProfiles(project, createQProfile("qp1", "Sonar Way Java", "java"), createQProfile("qp2", "Sonar Way Xoo", "xoo")); QualityGateDto qualityGateDto = db.qualityGates().insertQualityGate(db.getDefaultOrganization(), qg -> qg.setName("Sonar way")); db.qualityGates().associateProjectToQualityGate(project, qualityGateDto); userSession.logIn(user) .addProjectPermission(UserRole.USER, project) .addProjectPermission(UserRole.ADMIN, project); String result = execute(project.getDbKey()); assertJson(result).ignoreFields("snapshotDate", "key", "qualityGate.key").isSimilarTo(ws.getDef().responseExampleAsString()); }
public List<String> getChildrenQualifiers(String qualifier) { ResourceTypeTree tree = getTree(qualifier); if (tree != null) { return tree.getChildren(qualifier); } return Collections.emptyList(); }
public ResourceTypes(ResourceTypeTree[] trees) { requireNonNull(trees); Map<String, ResourceTypeTree> treeMap = new LinkedHashMap<>(); Map<String, ResourceType> typeMap = new LinkedHashMap<>(); Collection<ResourceType> rootsSet = new LinkedHashSet<>(); for (ResourceTypeTree tree : trees) { rootsSet.add(tree.getRootType()); for (ResourceType type : tree.getTypes()) { if (treeMap.containsKey(type.getQualifier())) { throw new IllegalStateException("Qualifier " + type.getQualifier() + " is defined in several trees"); } treeMap.put(type.getQualifier(), tree); typeMap.put(type.getQualifier(), type); } } treeByQualifier = unmodifiableMap(new LinkedHashMap<>(treeMap)); typeByQualifier = unmodifiableMap(new LinkedHashMap<>(typeMap)); rootTypes = unmodifiableList(new ArrayList<>(rootsSet)); }
@Test(expected = IllegalArgumentException.class) public void forbidNullRelation() { ResourceTypeTree.builder() .addType(ResourceType.builder("TRK").build()) .addType(ResourceType.builder("DIR").build()) .addRelations("DIR" /* missing child */) .build(); }
public ResourceType getRoot(String qualifier){ return getTree(qualifier).getRootType(); }
@Test public void getLeaves() { assertThat(tree.getLeaves()).containsOnly("FIL", "UTS"); }
public ResourceTypeTree build() { Collection<String> children = relations.values(); for (ResourceType type : types) { if (!children.contains(type.getQualifier())) { root = type; break; } } return new ResourceTypeTree(this); } }
public ResourceTypes(ResourceTypeTree[] trees) { Preconditions.checkNotNull(trees); Map<String, ResourceTypeTree> treeMap = Maps.newHashMap(); Map<String, ResourceType> typeMap = Maps.newLinkedHashMap(); Collection<ResourceType> rootsSet = Sets.newHashSet(); for (ResourceTypeTree tree : trees) { rootsSet.add(tree.getRootType()); for (ResourceType type : tree.getTypes()) { if (treeMap.containsKey(type.getQualifier())) { throw new IllegalStateException("Qualifier " + type.getQualifier() + " is defined in several trees"); } treeMap.put(type.getQualifier(), tree); typeMap.put(type.getQualifier(), type); } } treeByQualifier = ImmutableMap.copyOf(treeMap); typeByQualifier = ImmutableMap.copyOf(typeMap); rootTypes = ImmutableList.copyOf(rootsSet); }
@Test public void test_example_response() { settings.setProperty("sonar.lf.logoUrl", "http://example.com/my-custom-logo.png"); settings.setProperty("sonar.lf.logoWidthPx", 135); settings.setProperty("sonar.lf.gravatarServerUrl", "http://some-server.tld/logo.png"); settings.setProperty("sonar.lf.enableGravatar", true); settings.setProperty("sonar.updatecenter.activate", false); settings.setProperty("sonar.technicalDebt.ratingGrid", "0.05,0.1,0.2,0.5"); init(createPages(), new ResourceTypeTree[] { ResourceTypeTree.builder() .addType(ResourceType.builder("POL").build()) .addType(ResourceType.builder("LOP").build()) .addRelations("POL", "LOP") .build(), ResourceTypeTree.builder() .addType(ResourceType.builder("PAL").build()) .addType(ResourceType.builder("LAP").build()) .addRelations("PAL", "LAP") .build() }); when(server.getVersion()).thenReturn("6.2"); when(dbClient.getDatabase().getDialect()).thenReturn(new MySql()); when(webServer.isStandalone()).thenReturn(true); when(editionProvider.get()).thenReturn(Optional.of(EditionProvider.Edition.COMMUNITY)); String result = call(); assertJson(result).isSimilarTo(ws.getDef().responseExampleAsString()); }
public List<String> getLeavesQualifiers(String qualifier) { ResourceTypeTree tree = getTree(qualifier); if (tree != null) { return tree.getLeaves(); } return Collections.emptyList(); }
public ResourceTypeTree build() { Collection<String> children = relations.values(); for (ResourceType type : types) { if (!children.contains(type.getQualifier())) { root = type; break; } } return new ResourceTypeTree(this); } }