@Test
    public void requireThatSyncSessionWorks() {
        SyncSession session = access().createSyncSession(new SyncParameters.Builder().build());

        DocumentType type = access().getDocumentTypeManager().getDocumentType("music");
        Document doc1 = new Document(type, new DocumentId("id:ns:music::1"));
        Document doc2 = new Document(type, new DocumentId("id:ns:music::2"));

        session.put(new DocumentPut(doc1));
        session.put(new DocumentPut(doc2));
        assertEquals(doc1, session.get(new DocumentId("id:ns:music::1")));
        assertEquals(doc2, session.get(new DocumentId("id:ns:music::2")));

        session.remove(new DocumentRemove(new DocumentId("id:ns:music::1")));
        assertNull(session.get(new DocumentId("id:ns:music::1")));
        assertEquals(doc2, session.get(new DocumentId("id:ns:music::2")));

        session.remove(new DocumentRemove(new DocumentId("id:ns:music::2")));
        assertNull(session.get(new DocumentId("id:ns:music::1")));
        assertNull(session.get(new DocumentId("id:ns:music::2")));

        session.destroy();
    }
These tests should work with all implementations (who choose to implement these features) To test a certain
implementation subclass this test and make the subclass setup assign the implementation class to the
<code>access</code> member variable (make sure it also calls super.setUp()). Override tests of nonsupported features
to do nothing.

@author bratseth
documentapi/src/test/java/com/yahoo/documentapi/test/AbstractDocumentApiTestCase.java