HelmAttributeParser { public HelmAttributes getAttributes(final AssetKind assetKind, final InputStream inputStream) throws IOException { switch (assetKind) { case HELM_PACKAGE: return getAttributesFromInputStream(inputStream); case HELM_PROVENANCE: return getAttributesProvenanceFromInputStream(inputStream); default: return new HelmAttributes(); } } @Inject  HelmAttributeParser(final TgzParser tgzParser,
                             final YamlParser yamlParser,
                             final ProvenanceParser provenanceParser); HelmAttributes getAttributes(final AssetKind assetKind, final InputStream inputStream); static HelmAttributes validateAttributes(final HelmAttributes attributes);  }
@Test public void testGetAttributesFromChart() throws Exception { String name = "mongodb-0.4.9.tgz"; InputStream chart = getClass().getResourceAsStream(name); AssetKind assetKind = AssetKind.getAssetKindByFileName(name); HelmAttributes result = underTest.getAttributes(assetKind, chart); assertThat(result.getName(), is("mongodb")); assertThat(result.getVersion(), is("0.4.9")); assertThat(result.getDescription(), is("NoSQL document-oriented database that stores JSON-like documents with dynamic schemas, simplifying the integration of data in content-driven applications.")); assertThat(result.getIcon(), is("https: Map<String, String> maintainers = new LinkedHashMap<String, String>() {{ put("email", "containers@bitnami.com"); put("name", "Bitnami"); }}; assertThat(result.getMaintainers(), is(Collections.singletonList(maintainers))); assertThat(result.getSources(), is(Collections.singletonList("https: }