def test_cdm_collection_append_method(self): cdm_corpus = CdmCorpusDefinition() cdm_corpus.storage.default_namespace = 'local' cdm_corpus.storage.mount('local', LocalAdapter('CdmCorpus/LocalPath')) ctx = cdm_corpus.ctx cdm_document = CdmDocumentDefinition(ctx, 'NameOfDocument') collection = CdmCollection(ctx, cdm_document, CdmObjectType.ATTRIBUTE_CONTEXT_DEF) appended_attribute_context = collection.append('nameOfNewAttribute') self.assertEqual(1, len(collection)) self.assertEqual('nameOfNewAttribute', collection[0].name) self.assertEqual(cdm_document, collection[0].owner) self.assertEqual(ctx, collection[0].ctx) self.assertEqual(collection[0], appended_attribute_context) attribute_context = CdmAttributeContext(ctx, 'NameOfAttributeContext') appended_attribute = collection.append(attribute_context) self.assertEqual(2, len(collection)) self.assertEqual(attribute_context, appended_attribute) self.assertEqual(attribute_context, collection[1]) self.assertEqual(cdm_document, attribute_context.owner)
def test_cdm_collection_change_makes_document_dirty(self): manifest = generate_manifest('C:\\Nothing') collection = CdmCollection(manifest.ctx, manifest, CdmObjectType.ENTITY_REF) manifest._is_dirty = False collection.append(CdmEntityReference(manifest.ctx, 'name', False)) self.assertTrue(manifest._is_dirty) manifest._is_dirty = False collection.append('theName') self.assertTrue(manifest._is_dirty) entity = CdmEntityReference(manifest.ctx, 'otherEntity', False) entity_list = [entity] manifest._is_dirty = False collection.extend(entity_list) self.assertTrue(manifest._is_dirty) manifest._is_dirty = False entity2 = CdmEntityReference(manifest.ctx, 'otherEntity2', False) collection.insert(0, entity2) self.assertTrue(manifest._is_dirty) manifest._is_dirty = False collection.remove(entity) self.assertTrue(manifest._is_dirty) manifest._is_dirty = False collection.pop(0) self.assertTrue(manifest._is_dirty) manifest._is_dirty = False collection.clear() self.assertTrue(manifest._is_dirty)
def test_cdm_collection_remove_method(self): cdm_corpus = CdmCorpusDefinition() cdm_corpus.storage.default_namespace = 'local' cdm_corpus.storage.mount('local', LocalAdapter('CdmCorpus/LocalPath')) ctx = cdm_corpus.ctx cdm_document = CdmDocumentDefinition(ctx, 'NameOfDocument') collection = CdmCollection(ctx, cdm_document, CdmObjectType.ATTRIBUTE_CONTEXT_DEF) appended_document = collection.append('nameOfNewDocument') collection.append('otherDocument') self.assertEqual(2, len(collection)) collection.remove(appended_document) self.assertTrue(appended_document not in collection) # try to remove a second time. collection.remove(appended_document) self.assertTrue(appended_document not in collection) self.assertEqual(1, len(collection))
def test_cdm_collection_remove_at(self): cdm_corpus = CdmCorpusDefinition() cdm_corpus.storage.default_namespace = 'local' cdm_corpus.storage.mount('local', LocalAdapter('CdmCorpus/LocalPath')) ctx = cdm_corpus.ctx cdm_document = CdmDocumentDefinition(ctx, 'NameOfDocument') collection = CdmCollection(ctx, cdm_document, CdmObjectType.ATTRIBUTE_CONTEXT_DEF) collection.append('nameOfNewDocument') appended_document2 = collection.append('otherDocument') self.assertEqual(2, len(collection)) collection.pop(0) self.assertEqual(1, len(collection)) self.assertEqual(appended_document2, collection[0]) collection.pop(1) self.assertEqual(1, len(collection)) self.assertEqual(appended_document2, collection[0]) collection.pop(0) self.assertEqual(0, len(collection))