private void verifyEntry(Entry entry) {
        for (Object key : entry.getExtensionAttributes().keySet()) {
            QName qname = (QName) key;
            // Foundation 1.9
            assertEquals(NAMESPACE, qname.getNamespaceURI());
        }
        
        // Atom 2.2
        assertTrue(entry.getId().toString().contains("urn:uuid:"));
        String uuid = entry.getId().toString().replace("urn:uuid:", "");
        
        // Atom 2.3.1
        assertTrue(entry.getCategories().size() > 0);
        Category typeCategory = findCategory(SrampAtomConstants.X_S_RAMP_TYPE, entry);
        assertNotNull(typeCategory);
        if (typeCategory.getTerm().equals("query") || typeCategory.getTerm().equals("classification")) {
            // Do nothing: stored query or classification.
        } else {
            // Else, assume it's an artifact.
            ArtifactType artifactType = SrampAtomUtils.getArtifactTypeFromEntry(entry);
            if (artifactType.isDocument()) {
                // Atom 2.3.5.3 -- verify /media returns the content.
                verifyMedia(uuid, artifactType);
            }
            // TODO: Not sure if this is correct.  In Overlord, the term is the name of the extended type,
            // not "ExtendedArtifactType"
            if (! artifactType.isExtendedType()) {
                assertEquals(artifactType.getArtifactType().getType(), typeCategory.getTerm());
            }
            
            // verify :kind
            Category kindCategory = findCategory(SrampAtomConstants.X_S_RAMP_KIND, entry);
            assertNotNull(kindCategory);
            if (artifactType.isDerived()) {
                assertEquals("derived", kindCategory.getTerm());
            } else {
                assertEquals("modeled", kindCategory.getTerm());
            }
        }
    }