class AssociationTest(IonTestCase):
    """Testing service classes of resource registry
    """

    @defer.inlineCallbacks
    def setUp(self):
        yield self._start_container()
        services = [{'name':'association1','module':'ion.play.rdf_store.association_service','class':'AssociationService'},]

        sup = yield self._spawn_processes(services)

        self.asc = AssociationServiceClient(proc=sup)
        
        d = dict()
        d['S']='key1'
        d['O']='key2'
        d['P']='key3'
        
        self.dobj=DataObject.from_encoding(d)
        assoc = ValueObject(self.dobj.encode())
        self.dobj_key=assoc.identity
        
    @defer.inlineCallbacks
    def tearDown(self):
        yield self._stop_container()

    @defer.inlineCallbacks
    def test_put_get_delete(self):

        res = yield self.asc.put_association(self.dobj)
        self.assertEqual(res,self.dobj_key)
        

        res = yield self.asc.get_association(self.dobj_key)
        self.assertEqual(res,self.dobj)
        
        res = yield self.asc.del_association(self.dobj_key)
        self.assertEqual(res,'success')
        
        
        
    def setUp(self):
        yield self._start_container()
        services = [{'name':'association1','module':'ion.play.rdf_store.association_service','class':'AssociationService'},]

        sup = yield self._spawn_processes(services)

        self.asc = AssociationServiceClient(proc=sup)
        
        d = dict()
        d['S']='key1'
        d['O']='key2'
        d['P']='key3'
        
        self.dobj=DataObject.from_encoding(d)
        assoc = ValueObject(self.dobj.encode())
        self.dobj_key=assoc.identity