@@ -14,8 +14,8 @@ public class MockProjectBuilder
1414        private  readonly  Mock < VBComponents >  _vbComponents ; 
1515        private  readonly  Mock < References >  _vbReferences ; 
1616
17-         private  readonly  List < Mock < VBComponent > >  _components  =  new  List < Mock < VBComponent > > ( ) ; 
18-         private  readonly  List < Mock < Reference > >  _references  =  new  List < Mock < Reference > > ( ) ;  
17+         private  readonly  ICollection < Mock < VBComponent > >  _components  =  new  List < Mock < VBComponent > > ( ) ; 
18+         private  readonly  ICollection < Mock < Reference > >  _references  =  new  List < Mock < Reference > > ( ) ;  
1919
2020        public  MockProjectBuilder ( string  name ,  vbext_ProjectProtection  protection ,  Func < VBE >  getVbe ) 
2121        { 
@@ -33,9 +33,13 @@ public MockProjectBuilder(string name, vbext_ProjectProtection protection, Func<
3333        public  MockProjectBuilder  AddComponent ( string  name ,  vbext_ComponentType  type ,  string  content ) 
3434        { 
3535            var  component  =  CreateComponentMock ( name ,  type ,  content ) ; 
36-             _components . Add ( component ) ; 
36+             return  AddComponent ( component ) ; 
37+         } 
3738
38-             return  this ; 
39+         public  MockProjectBuilder  AddComponent ( Mock < VBComponent >  component ) 
40+         { 
41+             _components . Add ( component ) ; 
42+             return  this ;             
3943        } 
4044
4145        public  MockProjectBuilder  AddReference ( string  name ,  string  filePath ) 
@@ -44,6 +48,12 @@ public MockProjectBuilder AddReference(string name, string filePath)
4448            return  this ; 
4549        } 
4650
51+         public  MockUserFormBuilder  UserFormBuilder ( string  name ,  string  content ) 
52+         { 
53+             var  component  =  CreateComponentMock ( name ,  vbext_ComponentType . vbext_ct_MSForm ,  content ) ; 
54+             return  new  MockUserFormBuilder ( component ) ; 
55+         } 
56+ 
4757        public  Mock < VBProject >  Build ( ) 
4858        { 
4959            return  _project ; 
@@ -70,8 +80,9 @@ private Mock<VBComponents> CreateComponentsMock()
7080            result . Setup ( c =>  c . GetEnumerator ( ) ) . Returns ( ( )  =>  _components . GetEnumerator ( ) ) ; 
7181            result . As < IEnumerable > ( ) . Setup ( c =>  c . GetEnumerator ( ) ) . Returns ( ( )  =>  _components . GetEnumerator ( ) ) ; 
7282
73-             result . Setup ( m =>  m . Item ( It . IsAny < int > ( ) ) ) . Returns < int > ( index =>  _components [ index ] . Object ) ; 
83+             result . Setup ( m =>  m . Item ( It . IsAny < int > ( ) ) ) . Returns < int > ( index =>  _components . ElementAt ( index ) . Object ) ; 
7484            result . Setup ( m =>  m . Item ( It . IsAny < string > ( ) ) ) . Returns < string > ( name =>  _components . Single ( item =>  item . Object . Name  ==  name ) . Object ) ; 
85+             result . SetupGet ( m =>  m . Count ) . Returns ( _components . Count ) ; 
7586
7687            return  result ; 
7788        } 
@@ -86,7 +97,8 @@ private Mock<References> CreateReferencesMock()
8697            result . Setup ( m =>  m . GetEnumerator ( ) ) . Returns ( ( )  =>  _references . GetEnumerator ( ) ) ; 
8798            result . As < IEnumerable > ( ) . Setup ( m =>  m . GetEnumerator ( ) ) . Returns ( ( )  =>  _references . GetEnumerator ( ) ) ; 
8899
89-             result . Setup ( m =>  m . Item ( It . IsAny < int > ( ) ) ) . Returns < int > ( index =>  _references [ index ] . Object ) ; 
100+             result . Setup ( m =>  m . Item ( It . IsAny < int > ( ) ) ) . Returns < int > ( index =>  _references . ElementAt ( index ) . Object ) ; 
101+             result . SetupGet ( m =>  m . Count ) . Returns ( _references . Count ) ; 
90102
91103            return  result ; 
92104        } 
0 commit comments