Forget to commit

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@1332 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
inoussa
2010-10-01 20:46:25 +00:00
parent fbaef11db8
commit 6bac809dd9

View File

@ -106,6 +106,11 @@ type
TTest_TImplementationFactory = class(TTestCase)
published
procedure POOLED_Discard();
procedure extension_empty();
procedure extension_simple();
procedure extension_array_empty();
procedure extension_array_simple();
procedure extension_duplicate();
end;
{ TwstModuleNotLoad }
@ -533,6 +538,121 @@ begin
Check(oldElt <> elt,'4.2');
end;
procedure TTest_TImplementationFactory.extension_empty();
var
obj : IServiceImplementationFactory;
s : string;
begin
obj := TImplementationFactory.Create(TTestClass);
CheckEquals(False,obj.GetExtension(s));
CheckEquals('',s)
end;
procedure TTest_TImplementationFactory.extension_simple();
var
obj : IServiceImplementationFactory;
s : string;
pm : IPropertyManager;
begin
obj := TImplementationFactory.Create(TTestClass);
obj.RegisterExtension('a','');
CheckEquals(True,obj.GetExtension(s));
CheckEquals('a',s);
obj := TImplementationFactory.Create(TTestClass);
obj.RegisterExtension('a','a.val');
CheckEquals(True,obj.GetExtension(s));
CheckEquals('a',s);
pm := obj.GetPropertyManager(sSERVICES_EXTENSIONS,False);
Check((pm <> nil),'GetPropertyManager(sSERVICES_EXTENSIONS,False)');
CheckEquals('a.val',pm.GetProperty('a'));
obj.RegisterExtension('b','');
CheckEquals(True,obj.GetExtension(s));
CheckEquals('a;b',s);
CheckEquals('a.val',pm.GetProperty('a'));
CheckEquals('',pm.GetProperty('b'));
obj.RegisterExtension('c','123');
CheckEquals(True,obj.GetExtension(s));
CheckEquals('a;b;c',s);
CheckEquals('a.val',pm.GetProperty('a'));
CheckEquals('',pm.GetProperty('b'));
CheckEquals('123',pm.GetProperty('c'));
end;
procedure TTest_TImplementationFactory.extension_array_empty();
var
obj : IServiceImplementationFactory;
s : string;
begin
obj := TImplementationFactory.Create(TTestClass);
obj.RegisterExtension([]);
CheckEquals(False,obj.GetExtension(s));
CheckEquals('',s);
obj := TImplementationFactory.Create(TTestClass);
obj.RegisterExtension(['']);
CheckEquals(False,obj.GetExtension(s));
CheckEquals('',s);
obj.RegisterExtension(['','']);
CheckEquals(False,obj.GetExtension(s));
CheckEquals('',s);
end;
procedure TTest_TImplementationFactory.extension_array_simple();
var
obj : IServiceImplementationFactory;
s : string;
pm : IPropertyManager;
begin
obj := TImplementationFactory.Create(TTestClass);
obj.RegisterExtension(['a']);
CheckEquals(True,obj.GetExtension(s));
CheckEquals('a',s);
obj := TImplementationFactory.Create(TTestClass);
obj.RegisterExtension(['a']);
CheckEquals(True,obj.GetExtension(s));
CheckEquals('a',s);
pm := obj.GetPropertyManager(sSERVICES_EXTENSIONS,False);
Check((pm <> nil),'GetPropertyManager(sSERVICES_EXTENSIONS,False)');
CheckEquals('',pm.GetProperty('a'));
obj.RegisterExtension(['b']);
CheckEquals(True,obj.GetExtension(s));
CheckEquals('a;b',s);
CheckEquals('',pm.GetProperty('a'));
CheckEquals('',pm.GetProperty('b'));
obj.RegisterExtension(['c','123']);
CheckEquals(True,obj.GetExtension(s));
CheckEquals('a;b;c;123',s);
CheckEquals('',pm.GetProperty('a'));
CheckEquals('',pm.GetProperty('b'));
CheckEquals('',pm.GetProperty('c'));
CheckEquals('',pm.GetProperty('123'));
end;
procedure TTest_TImplementationFactory.extension_duplicate();
var
obj : IServiceImplementationFactory;
s : string;
begin
obj := TImplementationFactory.Create(TTestClass);
obj.RegisterExtension('a','');
CheckEquals(True,obj.GetExtension(s));
CheckEquals('a',s);
// Should not duplicate
obj.RegisterExtension('a','');
CheckEquals(True,obj.GetExtension(s));
CheckEquals('a',s);
obj.RegisterExtension('b','');
CheckEquals(True,obj.GetExtension(s));
CheckEquals('a;b',s);
obj.RegisterExtension('a','a.val');
CheckEquals(True,obj.GetExtension(s));
CheckEquals('a;b',s);
end;
{ TTest_TIntfPoolItem }
procedure TTest_TIntfPoolItem.All();