@Override public MetadataChange apply(MetadataMutation mutation) { return new MetadataChange(mutation.getEntity(), Metadata.EMPTY, Metadata.EMPTY); }
new ScopedName(USER, "userProp"), "userVal")); MetadataChange change = mds.apply(new Update(entity, metadata)); Assert.assertEquals(new MetadataChange(entity, Metadata.EMPTY, metadata), change); verifyMetadata(mds, entity, metadata); Assert.assertEquals(new MetadataChange(entity, metadata, Metadata.EMPTY), change); verifyMetadata(mds, entity, Metadata.EMPTY); Assert.assertEquals(new MetadataChange(entity, Metadata.EMPTY, metadata), change); verifyMetadata(mds, entity, metadata); change = mds.apply(new Remove(entity, USER)); Metadata newMetadata = filterBy(metadata, SYSTEM, null); Assert.assertEquals(new MetadataChange(entity, metadata, newMetadata), change); verifyMetadata(mds, entity, newMetadata); Assert.assertEquals(new MetadataChange(entity, newMetadata, metadata), change); verifyMetadata(mds, entity, metadata); change = mds.apply(new Remove(entity, SYSTEM)); newMetadata = filterBy(metadata, USER, null); Assert.assertEquals(new MetadataChange(entity, metadata, newMetadata), change); verifyMetadata(mds, entity, newMetadata); Assert.assertEquals(new MetadataChange(entity, newMetadata, metadata), change); verifyMetadata(mds, entity, metadata); change = mds.apply(new Remove(entity, TAG)); newMetadata = filterBy(metadata, null, PROPERTY); Assert.assertEquals(new MetadataChange(entity, metadata, newMetadata), change); verifyMetadata(mds, entity, newMetadata);
private MetadataChange combineChanges(MetadataEntity entity, MetadataDataset.Change userChange, MetadataDataset.Change sysChange) { Metadata userBefore = new Metadata(USER, userChange.getExisting().getTags(), userChange.getExisting().getProperties()); Metadata sysBefore = new Metadata(SYSTEM, sysChange.getExisting().getTags(), sysChange.getExisting().getProperties()); Metadata before = mergeDisjointMetadata(userBefore, sysBefore); Metadata userAfter = new Metadata(USER, userChange.getLatest().getTags(), userChange.getLatest().getProperties()); Metadata sysAfter = new Metadata(SYSTEM, sysChange.getLatest().getTags(), sysChange.getLatest().getProperties()); Metadata after = mergeDisjointMetadata(userAfter, sysAfter); return new MetadataChange(entity, before, after); }
Assert.assertEquals(new MetadataChange(entity, Metadata.EMPTY, Metadata.EMPTY), change); verifyMetadata(mds, entity, Metadata.EMPTY); new ScopedNameOfKind(PROPERTY, SYSTEM, "sp2"), new ScopedNameOfKind(PROPERTY, USER, "up2")))); Assert.assertEquals(new MetadataChange(entity, Metadata.EMPTY, Metadata.EMPTY), change); verifyMetadata(mds, entity, Metadata.EMPTY); new ScopedName(USER, "k"), "v1")); change = mds.apply(new Update(entity, metadata)); Assert.assertEquals(new MetadataChange(entity, Metadata.EMPTY, metadata), change); verifyMetadata(mds, entity, metadata); Assert.assertEquals(new MetadataChange(entity, metadata, metadata), change); verifyMetadata(mds, entity, metadata); MetadataMutation create = new MetadataMutation.Create(entity, metadata, Collections.emptyMap()); change = mds.apply(create); Assert.assertEquals(new MetadataChange(entity, previousMetadata, metadata), change); new ScopedName(USER, "up2"), "uv2")); change = mds.apply(recreate); Assert.assertEquals(new MetadataChange(entity, previousMetadata, metadata), change); verifyMetadata(mds, entity, metadata); new ScopedName(USER, "up3"), "uv3")); change = mds.apply(recreate); Assert.assertEquals(new MetadataChange(entity, previousMetadata, metadata), change); verifyMetadata(mds, entity, metadata);