@Override protected void appendAttributes(Map<String, Object> parameters) { parameters.put("repositoryName", this.getPackageDefinition().getRepository().getName()); parameters.put("packageName", this.getPackageDefinition().getName()); }
@Test public void shouldNotCalculateFingerprintWhenAvailable() { String fingerprint = "fingerprint"; PackageDefinition packageDefinition = mock(PackageDefinition.class); PackageMaterial packageMaterial = new PackageMaterial(); packageMaterial.setPackageDefinition(packageDefinition); packageMaterial.setFingerprint(fingerprint); assertThat(packageMaterial.getFingerprint(),is(fingerprint)); verify(packageDefinition,never()).getFingerprint(anyString()); }
@Override public List<Modification> latestModification(final PackageMaterial material, File baseDir, SubprocessExecutionContext execCtx) { PackageConfiguration packageConfiguration = buildPackageConfigurations(material.getPackageDefinition()); RepositoryConfiguration repositoryConfiguration = buildRepositoryConfigurations(material.getPackageDefinition().getRepository()); PackageRevision packageRevision = packageRepositoryExtension.getLatestRevision(material.getPluginId(), packageConfiguration, repositoryConfiguration); return getModifications(packageRevision); }
@Override public void toJson(Map jsonMap, Revision revision) { jsonMap.put("scmType", getTypeForDisplay()); jsonMap.put("action", "Modified"); jsonMap.put("location", getUriForDisplay()); jsonMap.put("materialName", getDisplayName()); }
@Override public void emailContent(StringBuilder content, Modification modification) { content.append(getTypeForDisplay() + " : " + getDisplayName()).append('\n').append( format("revision: %s, completed on %s", modification.getRevision(), modification.getModifiedTime())); }
@Override public String getDisplayName() { return ((name == null || name.isBlank()) && getPackageDefinition().getRepository().getName() == null) ? getUriForDisplay() : getName().toString(); }
@Test public void shouldNotThrowUpWhenAdditionalDataIsNull() { PackageMaterial material = new PackageMaterial(); PackageRepository repository = PackageRepositoryMother.create("repo-id", "tw-dev", "pluginid", "version", new Configuration(ConfigurationPropertyMother.create("k1", false, "v1"))); material.setPackageDefinition(PackageDefinitionMother.create("p-id", "go-agent", new Configuration(ConfigurationPropertyMother.create("k2", false, "v2")), repository)); material.setName(new CaseInsensitiveString("tw-dev:go-agent")); Modifications modifications = new Modifications(new Modification("loser", "comment", "email", new Date(), "revision-123", null)); EnvironmentVariableContext environmentVariableContext = new EnvironmentVariableContext(); material.populateEnvironmentContext(environmentVariableContext, new MaterialRevision(material, modifications), null); assertThat(environmentVariableContext.getProperty("GO_PACKAGE_TW_DEV_GO_AGENT_LABEL"), is("revision-123")); assertThat(environmentVariableContext.getProperty("GO_REPO_TW_DEV_GO_AGENT_K1"), is("v1")); assertThat(environmentVariableContext.getProperty("GO_PACKAGE_TW_DEV_GO_AGENT_K2"), is("v2")); }
@Test public void shouldTestEqualsBasedOnConfiguration() { PackageMaterial material = MaterialsMother.packageMaterial("repo-id", "repo-name", "pkg-id", "pkg-name", ConfigurationPropertyMother.create("key1", false, "value1")); MaterialInstance materialInstance = material.createMaterialInstance(); MaterialInstance materialInstanceCopy = material.createMaterialInstance(); material.getPackageDefinition().getConfiguration().add(ConfigurationPropertyMother.create("key2", false, "value2")); MaterialInstance newMaterialInstance = material.createMaterialInstance(); assertThat(materialInstance, is(materialInstanceCopy)); assertThat(materialInstance, is(not(newMaterialInstance))); }
@Test public void shouldGetDifferentFingerprintWhenPluginIdChanges() { PackageMaterial material = new PackageMaterial(); PackageRepository repository = PackageRepositoryMother.create("repo-id", "repo", "yum-1", "version", new Configuration(ConfigurationPropertyMother.create("k1", false, "v1"))); material.setPackageDefinition(PackageDefinitionMother.create("p-id-1", "name", new Configuration(ConfigurationPropertyMother.create("k2", false, "v2")), repository)); PackageMaterial anotherMaterial = new PackageMaterial(); PackageRepository anotherRepository = PackageRepositoryMother.create("repo-id", "repo", "yum-2", "version", new Configuration(ConfigurationPropertyMother.create("k1", false, "v1"))); anotherMaterial.setPackageDefinition(PackageDefinitionMother.create("p-id-2", "name", new Configuration(ConfigurationPropertyMother.create("k2", false, "v2")), anotherRepository)); assertThat(material.getFingerprint().equals(anotherMaterial.getFingerprint()), is(false)); }
@Test public void shouldGetSqlCriteria() { PackageMaterial material = new PackageMaterial(); PackageRepository repository = PackageRepositoryMother.create("repo-id", "repo", "pluginid", "version", new Configuration(ConfigurationPropertyMother.create("k1", false, "v1"))); material.setPackageDefinition(PackageDefinitionMother.create("p-id", "name", new Configuration(ConfigurationPropertyMother.create("k2", false, "v2")), repository)); Map<String, Object> criteria = material.getSqlCriteria(); assertThat(criteria.get("type"), is(PackageMaterial.class.getSimpleName())); assertThat(criteria.get("fingerprint"), is(material.getFingerprint())); }
@Override public void populateEnvironmentContext(EnvironmentVariableContext context, MaterialRevision materialRevision, File workingDir) { context.setProperty(upperCase(format("GO_PACKAGE_%s_LABEL", escapeEnvironmentVariable(getName().toString()))), materialRevision.getRevision().getRevision(), false); for (ConfigurationProperty configurationProperty : getPackageDefinition().getRepository().getConfiguration()) { context.setProperty(getEnvironmentVariableKey("GO_REPO_%s_%s", configurationProperty.getConfigurationKey().getName()), configurationProperty.getValue(), configurationProperty.isSecure()); for (ConfigurationProperty configurationProperty : getPackageDefinition().getConfiguration()) { context.setProperty(getEnvironmentVariableKey("GO_PACKAGE_%s_%s", configurationProperty.getConfigurationKey().getName()), configurationProperty.getValue(), configurationProperty.isSecure()); context.setProperty(getEnvironmentVariableKey("GO_PACKAGE_%s_%s", key), value, isSecure);
@Test public void shouldGetUriForDisplayNameIfNameIsNull() { PackageMaterial material = new PackageMaterial(); PackageRepository repository = PackageRepositoryMother.create("repo-id", null, "pluginid", "version", new Configuration(ConfigurationPropertyMother.create("k1", false, "repo-v1"), ConfigurationPropertyMother.create("k2", false, "repo-v2"))); material.setPackageDefinition(PackageDefinitionMother.create("p-id", null, new Configuration(ConfigurationPropertyMother.create("k3", false, "package-v1")), repository)); assertThat(material.getDisplayName(), is(material.getUriForDisplay())); }
@Test public void shouldGetLongDescription() { PackageMaterial material = new PackageMaterial(); Configuration configuration = new Configuration(ConfigurationPropertyMother.create("k1", false, "repo-v1"), ConfigurationPropertyMother.create("k2", false, "repo-v2")); PackageRepository repository = PackageRepositoryMother.create("repo-id", "repo-name", "pluginid", "version", configuration); PackageDefinition packageDefinition = PackageDefinitionMother.create("p-id", "package-name", new Configuration(ConfigurationPropertyMother.create("k3", false, "package-v1")), repository); material.setPackageDefinition(packageDefinition); assertThat(material.getLongDescription(), is(material.getUriForDisplay())); }
public static PackageMaterial packageMaterial(String repoId, String repoName, String pkgId, String pkgName, final String pluginid, final String version, List<ConfigurationProperty> repoProperties, List<ConfigurationProperty> packageProperties) { PackageRepository repository = PackageRepositoryMother.create(repoId, repoName, pluginid, version, new Configuration(repoProperties)); PackageDefinition packageDefinition = PackageDefinitionMother.create(pkgId, pkgName, new Configuration(packageProperties), repository); repository.getPackages().add(packageDefinition); PackageMaterial material = new PackageMaterial(pkgId); material.setId(1); material.setPackageDefinition(packageDefinition); return material; }
@Test public void shouldGetJsonRepresentationForPackageMaterial() { PackageMaterial material = new PackageMaterial(); PackageRepository repository = create("repo-id", "repo-name", "pluginid", "version", new Configuration(ConfigurationPropertyMother.create("k1", false, "v1"))); material.setPackageDefinition(PackageDefinitionMother.create("p-id", "package-name", new Configuration(ConfigurationPropertyMother.create("k2", false, "v2")), repository)); Map<String, String> jsonMap = new LinkedHashMap<>(); material.toJson(jsonMap, new PackageMaterialRevision("rev123", new Date())); assertThat(jsonMap.get("scmType"), is("Package")); assertThat(jsonMap.get("materialName"), is("repo-name:package-name")); assertThat(jsonMap.get("action"), is("Modified")); assertThat(jsonMap.get("location"), is(material.getUriForDisplay())); }
@Test public void shouldTakeValueOfIsAutoUpdateFromPackageDefinition() throws Exception { PackageMaterial material = MaterialsMother.packageMaterial(); material.getPackageDefinition().setAutoUpdate(true); assertThat(material.isAutoUpdate(), is(true)); material.getPackageDefinition().setAutoUpdate(false); assertThat(material.isAutoUpdate(), is(false)); }
@Test public void shouldGetDisplayName() { PackageMaterial material = new PackageMaterial(); PackageRepository repository = PackageRepositoryMother.create("repo-id", "repo-name", "pluginid", "version", new Configuration(ConfigurationPropertyMother.create("k1", false, "v1"))); material.setPackageDefinition(PackageDefinitionMother.create("p-id", "package-name", new Configuration(ConfigurationPropertyMother.create("k2", false, "v2")), repository)); assertThat(material.getDisplayName(), is("repo-name:package-name")); }
@Test public void shouldGetNameFromRepoNameAndPackageName() { PackageMaterial material = new PackageMaterial(); PackageRepository repository = PackageRepositoryMother.create("repo-id", "repo-name", "pluginid", "version", new Configuration(ConfigurationPropertyMother.create("k1", false, "v1"))); material.setPackageDefinition(PackageDefinitionMother.create("p-id", "package-name", new Configuration(ConfigurationPropertyMother.create("k2", false, "v2")), repository)); assertThat(material.getName().toString(), is("repo-name:package-name")); }
@Test public void shouldFailEqualsCheckIfFingerprintDiffers() { PackageMaterial material1 = MaterialsMother.packageMaterial(); material1.getPackageDefinition().getConfiguration().first().setConfigurationValue(new ConfigurationValue("new-url")); PackageMaterial material2 = MaterialsMother.packageMaterial(); assertThat(material1.equals(material2), is(false)); }
@Test public void shouldConvertMaterialInstanceToMaterial() { PackageMaterial material = MaterialsMother.packageMaterial(); PackageDefinition packageDefinition = material.getPackageDefinition(); PackageMaterialInstance materialInstance = new PackageMaterialInstance(JsonHelper.toJsonString(material), "flyweight"); materialInstance.setId(1L); PackageMaterial constructedMaterial = (PackageMaterial) materialInstance.toOldMaterial(null, null, null); assertThat(constructedMaterial.getPackageDefinition().getConfiguration(), is(packageDefinition.getConfiguration())); assertThat(constructedMaterial.getPackageDefinition().getRepository().getPluginConfiguration().getId(), is(packageDefinition.getRepository().getPluginConfiguration().getId())); assertThat(constructedMaterial.getPackageDefinition().getRepository().getConfiguration(), is(packageDefinition.getRepository().getConfiguration())); assertThat(constructedMaterial.getId(), is(1L)); }