summaryrefslogtreecommitdiffstats
path: root/archiva-modules/metadata
diff options
context:
space:
mode:
authorBrett Porter <brett@apache.org>2010-12-21 10:16:04 +0000
committerBrett Porter <brett@apache.org>2010-12-21 10:16:04 +0000
commit2a6a4e570f3f9a1eb7e92687e5ed68b98ff48c50 (patch)
treebce4096b2aad5ae7ae5f3e303c78d8d99f807247 /archiva-modules/metadata
parentc82a0e6bc1c0d9c54f6147bf06a8d831c9eaa92e (diff)
downloadarchiva-2a6a4e570f3f9a1eb7e92687e5ed68b98ff48c50.tar.gz
archiva-2a6a4e570f3f9a1eb7e92687e5ed68b98ff48c50.zip
[MRM-1327] remove unnecessary facet node for project versions, and ensure artifact facet properties are correctly removed
git-svn-id: https://svn.apache.org/repos/asf/archiva/trunk@1051444 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'archiva-modules/metadata')
-rw-r--r--archiva-modules/metadata/metadata-repository-api/src/test/java/org/apache/archiva/metadata/repository/AbstractMetadataRepositoryTest.java35
1 files changed, 35 insertions, 0 deletions
diff --git a/archiva-modules/metadata/metadata-repository-api/src/test/java/org/apache/archiva/metadata/repository/AbstractMetadataRepositoryTest.java b/archiva-modules/metadata/metadata-repository-api/src/test/java/org/apache/archiva/metadata/repository/AbstractMetadataRepositoryTest.java
index afd34b363..e96c00d01 100644
--- a/archiva-modules/metadata/metadata-repository-api/src/test/java/org/apache/archiva/metadata/repository/AbstractMetadataRepositoryTest.java
+++ b/archiva-modules/metadata/metadata-repository-api/src/test/java/org/apache/archiva/metadata/repository/AbstractMetadataRepositoryTest.java
@@ -432,6 +432,41 @@ public abstract class AbstractMetadataRepositoryTest
assertFalse( testFacet.toProperties().containsKey( "deleteKey" ) );
}
+ public void testUpdateArtifactMetadataWithExistingFacetsFacetPropertyWasRemoved()
+ throws MetadataResolutionException
+ {
+ ArtifactMetadata metadata = createArtifact();
+
+ Map<String, String> additionalProps = new HashMap<String, String>();
+ additionalProps.put( "deleteKey", "deleteValue" );
+
+ MetadataFacet facet = new TestMetadataFacet( TEST_FACET_ID, "baz", additionalProps );
+ metadata.addFacet( facet );
+ repository.updateArtifact( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION, metadata );
+
+ metadata = repository.getArtifacts( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT,
+ TEST_PROJECT_VERSION ).iterator().next();
+ assertEquals( Collections.singleton( TEST_FACET_ID ), metadata.getFacetIds() );
+
+ TestMetadataFacet testFacet = (TestMetadataFacet) metadata.getFacet( TEST_FACET_ID );
+ Map<String, String> facetProperties = testFacet.toProperties();
+
+ assertEquals( "deleteValue", facetProperties.get( "deleteKey" ) );
+
+ facetProperties.remove( "deleteKey" );
+
+ TestMetadataFacet newTestFacet = new TestMetadataFacet( TEST_FACET_ID, testFacet.getValue(), facetProperties );
+ metadata.addFacet( newTestFacet );
+
+ repository.updateArtifact( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION, metadata );
+
+ metadata = repository.getArtifacts( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT,
+ TEST_PROJECT_VERSION ).iterator().next();
+ assertEquals( Collections.singleton( TEST_FACET_ID ), metadata.getFacetIds() );
+ testFacet = (TestMetadataFacet) metadata.getFacet( TEST_FACET_ID );
+ assertFalse( testFacet.toProperties().containsKey( "deleteKey" ) );
+ }
+
public void testUpdateArtifactMetadataWithExistingFacets()
{
ArtifactMetadata metadata = createArtifact();