Browse Source

Add ServiceContainer.cs with UnitTest's

pull/15/head^2
peterforstmeier 15 years ago
parent
commit
1f65200563
  1. 1
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/ICSharpCode.Reports.Core.csproj
  2. 54
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Globals/ServiceContainer.cs
  3. 84
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/Globals/ServiceContainerFixture.cs
  4. 2
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/ICSharpCode.Reports.Core.Test.csproj

1
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/ICSharpCode.Reports.Core.csproj

@ -244,6 +244,7 @@ @@ -244,6 +244,7 @@
<Compile Include="Project\Factories\DisplayNameAttribute.cs" />
<Compile Include="Project\Factories\RendererFactory.cs" />
<Compile Include="Project\Factories\SectionFactory.cs" />
<Compile Include="Project\Globals\ServiceContainer.cs" />
<Compile Include="Project\Globals\CreateGraphicObject.cs" />
<Compile Include="Project\Globals\FilePathConverter.cs" />
<Compile Include="Project\Globals\FileUtility.cs" />

54
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Globals/ServiceContainer.cs

@ -0,0 +1,54 @@ @@ -0,0 +1,54 @@
/*
* Created by SharpDevelop.
* User: Peter Forstmeier
* Date: 11.02.2011
* Time: 20:15
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.Collections.Generic;
namespace ICSharpCode.Reports.Core.Globals
{
/// <summary>
/// Description of .
/// </summary>
public static class ServiceContainer
{
private static Dictionary<Type, object> services = new Dictionary<Type, object>();
public static void InitializeServiceContainer()
{
}
public static void AddService<T>(T service)
{
services.Add(typeof(T), service);
}
public static bool Contains (Type serviceType)
{
object service;
services.TryGetValue(serviceType, out service);
if (service != null) {
return true;
}
return false;
}
public static object GetService(Type serviceType)
{
object service;
services.TryGetValue(serviceType, out service);
return service;
}
}
}

84
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/Globals/ServiceContainerFixture.cs

@ -0,0 +1,84 @@ @@ -0,0 +1,84 @@
/*
* Created by SharpDevelop.
* User: Peter Forstmeier
* Date: 11.02.2011
* Time: 20:26
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using NUnit.Framework;
using ICSharpCode.Reports.Core.Globals;
namespace ICSharpCode.Reports.Core.Test.Globals
{
public interface ITestInterface
{
bool Test();
}
public class MyTestImplementation : ITestInterface
{
public bool Test()
{
throw new NotImplementedException();
}
}
[TestFixture]
public class ServiceContainerFixture
{
[Test]
public void GetServiceFromContainer()
{
var service = ServiceContainer.GetService(typeof(ITestInterface));
Assert.That (service,Is.Not.Null);
Assert.That (service,Is.AssignableFrom(typeof(MyTestImplementation)));
Assert.That (service,Is.AssignableTo (typeof(ITestInterface)));
}
[Test]
[ExpectedException(typeof(System.ArgumentException))]
public void ShouldNotAddServiceMoreThanOneTime()
{
ServiceContainer.AddService<ITestInterface>(new MyTestImplementation());
}
[Test]
public void ContainsService()
{
bool contains = ServiceContainer.Contains(typeof(ITestInterface));
Assert.That(contains,Is.True);
}
[Test]
public void DosNotContainsService()
{
bool contains = ServiceContainer.Contains(typeof(IServiceProvider));
Assert.That(contains,Is.False);
}
[TestFixtureSetUp]
public void Init()
{
ServiceContainer.InitializeServiceContainer();
ServiceContainer.AddService<ITestInterface>(new MyTestImplementation());
}
[TestFixtureTearDown]
public void Dispose()
{
// TODO: Add tear down code.
}
}
}

2
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/ICSharpCode.Reports.Core.Test.csproj

@ -80,6 +80,7 @@ @@ -80,6 +80,7 @@
<Compile Include="DataManager\TableStragy\GroupTableFixture.cs" />
<Compile Include="DataManager\TableStragy\TableDataManagerFixture.cs" />
<Compile Include="DataManager\TableStragy\TableStrategyFixture.cs" />
<Compile Include="Globals\ServiceContainerFixture.cs" />
<Compile Include="Printing\SectionBoundFixture.cs" />
<Compile Include="Printing\Shapes\BaseLineFixture.cs" />
<Compile Include="Printing\Shapes\EllipseShapeFixture.cs" />
@ -121,6 +122,7 @@ @@ -121,6 +122,7 @@
<Folder Include="DataManager" />
<Folder Include="Collections" />
<Folder Include="BaseClasses" />
<Folder Include="Globals" />
<Folder Include="Printing\Shapes" />
<Folder Include="TestHelpers" />
<Folder Include="Printing" />

Loading…
Cancel
Save