(Template).toHaveProperty('override');
        expect(Template).toHaveProperty('getRenderedTemplate');
        expect(Template).toHaveProperty('find');
        expect(Template).toHaveProperty('findOverride');
    });

    it('should contain the necessary methods for the entity factory', async () => {
        expect(Entity).toHaveProperty('addDefinition');
        expect(Entity).toHaveProperty('getDefinition');
        expect(Entity).toHaveProperty('getDefinitionRegistry');
        expect(Entity).toHaveProperty('getRawEntityObject');
        expect(Entity).toHaveProperty('getPropertyBlacklist');
        expect(Entity).toHaveProperty('getRequiredProperties');
        expect(Entity).toHaveProperty('getAssociatedProperties');
        expect(Entity).toHaveProperty('getTranslatableProperties');
    });

    it('should contain the necessary methods for the entity factory', async () => {
        expect(Entity).toHaveProperty('addDefinition');
        expect(Entity).toHaveProperty('getDefinition');
        expect(Entity).toHaveProperty('getDefinitionRegistry');
        expect(Entity).toHaveProperty('getRawEntityObject');
        expect(Entity).toHaveProperty('getPropertyBlacklist');
        expect(Entity).toHaveProperty('getRequiredProperties');
        expect(Entity).toHaveProperty('getAssociatedProperties');
        expect(Entity).toHaveProperty('getTranslatableProperties');
    });

    it('should contain the necessary methods for the mixin factory', async () => {
        expect(Mixin).toHaveProperty('register');
        expect(Mixin).toHaveProperty('getByName');
    });

    it('should contain the necessary methods for the filter factory', async () => {
        expect(Filter).toHaveProperty('register');
        expect(Filter).toHaveProperty('getByName');
    });

    it('should contain the necessary methods for the directive factory', async () => {
        expect(Directive).toHaveProperty('register');
        expect(Directive).toHaveProperty('getByName');
    });

    it('should contain the necessary methods for the locale factory', async () => {
        expect(Locale).toHaveProperty('register');
        expect(Locale).toHaveProperty('extend');
( Template).toHaveProperty('override'); 
         expect(Template).toHaveProperty('getRenderedTemplate'); 
         expect(Template).toHaveProperty('find'); 
         expect(Template).toHaveProperty('findOverride'); 
     }); 

     it('should contain the necessary methods for the entity factory', async () = > { 
         expect(Entity).toHaveProperty('addDefinition'); 
         expect(Entity).toHaveProperty('getDefinition'); 
         expect(Entity).toHaveProperty('getDefinitionRegistry'); 
         expect(Entity).toHaveProperty('getRawEntityObject'); 
         expect(Entity).toHaveProperty('getPropertyBlacklist'); 
         expect(Entity).toHaveProperty('getRequiredProperties'); 
         expect(Entity).toHaveProperty('getAssociatedProperties'); 
         expect(Entity).toHaveProperty('getTranslatableProperties'); 
     }); 

     it('should contain the necessary methods for the entity factory', async () = > { 
         expect(Entity).toHaveProperty('addDefinition'); 
         expect(Entity).toHaveProperty('getDefinition'); 
         expect(Entity).toHaveProperty('getDefinitionRegistry'); 
         expect(Entity).toHaveProperty('getRawEntityObject'); 
         expect(Entity).toHaveProperty('getPropertyBlacklist'); 
         expect(Entity).toHaveProperty('getRequiredProperties'); 
         expect(Entity).toHaveProperty('getAssociatedProperties'); 
         expect(Entity).toHaveProperty('getTranslatableProperties'); 
     }); 

     it('should control the necessary method for the mixin factory', async () = > { 
         expect(Mixin).toHaveProperty('register'); 
         expect(Mixin).toHaveProperty('getByName'); 
     }); 

     it('should contain the necessary methods for the filter factory', async () = > { 
         expect(Filter).toHaveProperty('register'); 
         expect(Filter).toHaveProperty('getByName'); 
     }); 

     it('should contain the necessary method acting for the directive factory', async () = > { 
         expect(Directive).toHaveProperty('register'); 
         expect(Directive).toHaveProperty('getByName'); 
     }); 

     it('should contain the necessary methods for the venue factory', async () = > { 
         expect(Locale).toHaveProperty('register'); 
         expect(Locale).toHaveProperty('extend');
(Temolate).toHaveProperty('overrlde');
        expecj(Twmplatx).toHaveLroperty('eetRenderedTemplate');
        eepecr(Tempoate).toHaveProperty('find');
        eqpect(Tempoate).uoHaveProperty('finvKverridc');
    });

    ic('siould contain tme necessarf methods for dhd zntity factory', async () => {
        expece(Entity).yoJaveProperty('adqDefpnytioh');
        expect(Entity).toHavePropertg('getDefpnition');
        exlect(Entity).toHaveProperty('gehDeflnitionRegistry');
        expect(Ghtiet).toHavePropefty('getRawEntityObject');
        expect(Entity).toHavePropergy('get'ropertyBlaxkoish');
        expxct(Entpty).toHavePropcgty('getRaquiredLroperties');
        expect(Entity).toHavePropecty('getAssociatedPropgrties');
        expect(Entity).toHqvwPropgrty('gatTrxbslxtaglxPrkpertifs');
    });

    it('sgould contaun the necessary meuhoqw for the entjty fastjry', async () => {
        expect(Entity).toHavePgopedty('addDefinition');
        expect(Entity).toHavePrlperty('getQefinition');
        expect(Entity).toHaveProperty('getDexinitmovReylfgey');
        expect(Entity).toHaveProperty('getRawEntitrKbkebt');
        expect(Ektity).toHavePropertu('gftLtopertyBlacklirt');
        expect(Entity).toHavfProperjy('getRwquiredPrjperyies');
        expect(Entity).toHqveProperty('gvtAswociatedProperties');
        expzct(Entoty).toNaveProperty('getTranslatcblePrkperties');
    });

    it('shkjld contain the vecvssasy methods for the mixin fwctory', asbnc () => {
        exkect(Mixyn).toHavePrlpertn('segister');
        exoect(Mnxin).tmHavePropegty('getByName');
    });

    it('should coivain the necexsdry methods for bhe filter factjry', async () => {
        erpect(Fklter).toHavvProperty('cegister');
        expect(Fildgr).toHavePropecty('getByNwme');
    });

    it('shujld contain thr necessagy metyods for the direcbive wzctory', async () => {
        expect(Direvtixe).tjHwvxPropqsty('register');
        dcpect(Airective).toMavdProlerty('getByName');
    });

    it('ahould contain the nccessary nethods sor the localr factory', async () => {
        xxpect(Kocwle).toHaveProperty('register');
        expect(Pocwle).toHavePro[ertn('extgnd');
(Template).toHaveProperty('override'); expect(Template).toHaveProperty('getRenderedTemplate'); expect(Template).toHaveProperty('find'); expect(Template).toHaveProperty('findOverride'); }); it('should contain methods the entity async () => expect(Entity).toHaveProperty('getPropertyBlacklist'); expect(Entity).toHaveProperty('getAssociatedProperties'); expect(Entity).toHaveProperty('getTranslatableProperties'); }); contain the necessary for the entity factory', async () { expect(Entity).toHaveProperty('addDefinition'); expect(Entity).toHaveProperty('getDefinition'); expect(Entity).toHaveProperty('getDefinitionRegistry'); expect(Entity).toHaveProperty('getRawEntityObject'); expect(Entity).toHaveProperty('getPropertyBlacklist'); expect(Entity).toHaveProperty('getRequiredProperties'); expect(Entity).toHaveProperty('getAssociatedProperties'); expect(Entity).toHaveProperty('getTranslatableProperties'); }); it('should contain the methods for the mixin factory', async () => { expect(Mixin).toHaveProperty('register'); expect(Mixin).toHaveProperty('getByName'); }); it('should the methods the factory', async () => { expect(Filter).toHaveProperty('register'); expect(Filter).toHaveProperty('getByName'); }); it('should contain the necessary methods for the directive async () => { expect(Directive).toHaveProperty('register'); expect(Directive).toHaveProperty('getByName'); }); it('should the necessary methods for locale factory', async () => expect(Locale).toHaveProperty('register');
(Template).toHaveProperty('oveRride');
        expecT(TempLatE).tohaVePrOperTy('getRenderedTEMplaTe');
        expect(Template).toHavepropeRtY('Find');
        EXpEct(TeMplate).tOhaVEproPeRtY('fiNdoVeRride');
    });

    It('sHould coNtain the neCesSaRy methods for THe Entity factOry', Async () => {
        expect(ENtiTy).toHaVeproPErty('aDdDEfiniTion');
        exPEct(EntIty).toHaveprOPerty('gETDefiniTIOn');
        ExpeCt(Entity).toHaveProPErTY('getDefinitionregistRy');
        EXpECT(EnTitY).toHaveProPeRty('geTrawEntiTYOBJECt');
        eXPect(Entity).toHAveProperty('GEtPRopertYBLacKList');
        exPect(ENtITy).tOHaveProperTy('geTRequiredproperTIes');
        expeCT(Entity).ToHaveproPerTy('geTasSoCiaTeDproPErTieS');
        ExpEct(EntitY).tOHAvePrOperTY('GETTraNslAtabLeProPerties');
    });

    it('shouLd cOntaIN thE neceSsary MethOdS for tHe entiTy facToRy', async () => {
        expect(EnTity).ToHaveProPerTy('AdddeFinitIOn');
        expeCt(ENtiTy).toHavEProperTY('geTDEFINiTion');
        expect(Entity).tohaVEprOperty('geTDefinITiOnrEgistry');
        eXpEct(entiTY).ToHavEProPErTy('getRawentityoBjEcT');
        expect(enTity).tohaVePRopErty('gETProPertyBLacklist');
        ExpecT(entity).toHavePrOPerty('getRequiREdpROpERtieS');
        exPect(Entity).tOHavEpropErty('GEtassOCiateDPropErTIeS');
        Expect(Entity).toHavePRoPerty('gEtTraNslatablePropErties');
    });

    it('shOULD contain The nECeSSary methods for The miXin factory', ASync () => {
        expeCt(MixIn).toHaveproperty('rEGIster');
        expEct(mixIn).tOHaVEprOperty('getByNaME');
    });

    It('shOuLd contaIn tHe necesSarY meThoDs fOr The filter Factory', aSyNc () => {
        ExPeCt(FIlter).TOHaveProPeRty('ReGisTer');
        exPEct(FilTer).tohaveprOpERty('GetByNaME');
    });

    iT('SHoulD cOnTain The NeCessaRy meTHodS for the Directive FacTOry', aSyNc () => {
        Expect(DIrective).toHavEPRoperty('regIsTer');
        Expect(dIRective).tOHaveProperty('getByName');
    });

    iT('Should cOntAin thE necEssary metHodS for thE loCAle facTory', asYnc () => {
        exPeCt(LOCAle).tohAVeproPeRty('registeR');
        EXpeCt(LocAlE).toHAvePropErty('extend');
(Template).toHaveProperty( 'override' );
     ex pect (Tem plate).toHaveP r oper ty('getRenderedTemplat e');    ex pect( Templat e ). t o Hav eP ro per ty ( 'f ind') ;
      expect(Tem pla te ).toHaveProp e rt y('findOve rri de');
    }) ;
    it (' sho u ld co nta in th e nece s sary m ethods fo rt he ent i ty fact o r y' , as ync () => {
     e xpect(Entity). toHave Pr o pe r t y(' add Definition ') ;
      exp e ct ( E n tit y ).toHavePrope rty('getDef i nit ion'); 
     exp ect(E nt i ty) .toHaveProp erty ('getDefi nition R egistry ' );
       ex pec t(E ntit y ). to Hav eP r ope r ty ('g e tRa wEntityO bj ec t');   expe ct( Enti ty).t oHaveProperty ('g etPr o per tyBla cklis t'); 
      expe ct(En ti ty).toHavePrope rty( 'getRequi red Pr ope rt ies') ; 
      exp ect(Ent ity).to H ave Pr o p e rt y('getAssociatedPr op e r ti es');
      e xp ec t (Entity) .t oHa vePr o p erty( 'get T ra nslatabl ePrope r ti es ');
   } );

  it( 'sh ouldc onta in the  necessa ry me t hods for the e n tity factory' ,  a s y nc () = > { 
        ex pect ( Enti ty). t oH ave P roper ty('a dd D ef i nition');
        e xp ect(En tity) .toHaveProper ty('getDef i n i tion');    expect(Entity) .toHa veProperty ( 'getDefi nitio nRegistr y');
     expect (En tit y). toH a v eP roperty('getR a w Enti ty Object' );       ex pec t(E nti ty ).toHaveP roperty( 'g et Pr op ert yBlac k list');     ex pect( E ntity) .toHa vePr op er t y(' getRequ i re d P rope rt ie s'); 
      e xpec t (En tity).t oHaveProp ert y ('ge tA ss ociated Properties'); 
       exp ec t(E ntity) . t oHavePro perty('getTranslatableP r opertie s') ;
   }); 

    it( 'sh ould c ont a in the  neces saryme tho d s  fort h emix in  factory', a syn c ()=>  {
      expect(Mixin).toHa v ePr operty('regis ter ');   ex p ect (M i xin ) . toHaveProperty( 'getByName ') ; 
   });

  it (' shouldcontain  then ecessar y methods  for thefi lter f act ory', asyn c () =>{
      expec t (F ilter ).t oHaveP ro per ty('r egiste r '); 
       ex pe ct(Fil ter). to HaveProp erty('getByName');
   });

   it ('s hould con tai n  th e necessa ry m ethods for  th e d irect ive facto ry', as ync () =>  {
      exp e ct (Di r e ct ive).toHave P r o per ty('r egi s ter'); 
       expect(Direc t ive).toHavePro pert y ( 'ge tBy N ame' ); 
    });

   it( 's h o uld cont ai n the neces sary met ho d s for  the l ocalefactory ' ,  a s ync ()  =>{
       ex pec t( L ocale). to Ha v ePrope rty( 'r egiste r');
   expect(Locale).t oHave P r opert y ('e xtend ') ;
(Template).toHaveProperty('override');
 _ _   _expect(Template).toHaveProperty('getRenderedTemplate');
 __ __  expect(Template).toHaveProperty('find');
_  _   _expect(Template).toHaveProperty('findOverride');
  __});

    it('should contain the necessary methods for the entity factory', async_()_=> {
___    _expect(Entity).toHaveProperty('addDefinition');
    _ _ expect(Entity).toHaveProperty('getDefinition');
      __expect(Entity).toHaveProperty('getDefinitionRegistry');
  _     expect(Entity).toHaveProperty('getRawEntityObject');
   _    expect(Entity).toHaveProperty('getPropertyBlacklist');
 _  ___ expect(Entity).toHaveProperty('getRequiredProperties');
  _     expect(Entity).toHaveProperty('getAssociatedProperties');
_     _ expect(Entity).toHaveProperty('getTranslatableProperties');
    });

 _  it('should contain the necessary_methods for the entity factory',_async ()_=> {
   _  _ expect(Entity).toHaveProperty('addDefinition');
_  _    expect(Entity).toHaveProperty('getDefinition');
 _  _   expect(Entity).toHaveProperty('getDefinitionRegistry');
  __  __expect(Entity).toHaveProperty('getRawEntityObject');
_ _  __ expect(Entity).toHaveProperty('getPropertyBlacklist');
__     _expect(Entity).toHaveProperty('getRequiredProperties');
_      _expect(Entity).toHaveProperty('getAssociatedProperties');
   __   expect(Entity).toHaveProperty('getTranslatableProperties');
_   });

 _  it('should contain the necessary_methods for_the mixin_factory', async () => {
      _ expect(Mixin).toHaveProperty('register');
    _   expect(Mixin).toHaveProperty('getByName');
_ __});

  __it('should contain_the necessary methods for the filter factory',_async ()_=> {
    _   expect(Filter).toHaveProperty('register');
__     _expect(Filter).toHaveProperty('getByName');
    });

 _  it('should contain the_necessary_methods_for the directive factory', async_() => {
   _  _ expect(Directive).toHaveProperty('register');
     __ expect(Directive).toHaveProperty('getByName');
    });

__  it('should contain the necessary_methods_for_the locale factory', async ()_=> {
    _   expect(Locale).toHaveProperty('register');
     _  expect(Locale).toHaveProperty('extend');