1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102
|
// ServiceContainerTest.cs - NUnit Test Cases for System.ComponentModel.Design.ServiceContainer
//
// Alexandre Pigolkine (pigolkine@gmx.de)
//
// (C) Alexandre Pigolkine (pigolkine@gmx.de)
//
using NUnit.Framework;
using System;
using System.ComponentModel.Design;
namespace MonoTests.System.ComponentModel.Design
{
// Helper classes
class NotInSvc
{
public NotInSvc()
{
}
}
class Svc
{
public Svc ()
{
}
private static int objectsCreatedByCallback = 0;
public static int TotalObjectsCreatedByCallback {
get { return objectsCreatedByCallback; }
}
public static object ServiceCreator (IServiceContainer isc, Type tp)
{
Assertion.AssertEquals ("ServiceCreator#01", tp, typeof (Svc));
++objectsCreatedByCallback;
return new Svc();
}
}
[TestFixture]
public class ServiceContainerTest : Assertion {
[Test]
public void GeneralTest1 ()
{
ServiceContainer sc = new ServiceContainer ();
sc.AddService (typeof (Svc), new Svc());
Svc service1 = sc.GetService (typeof (Svc)) as Svc;
AssertNotNull ("GT1#01", service1);
AssertEquals ("GT1#02", service1, sc.GetService (typeof (Svc)));
AssertNull ("GT1#04", sc.GetService (typeof (NotInSvc)));
}
[Test, ExpectedException (typeof (ArgumentException))]
public void GeneralTest2 ()
{
ServiceContainer sc = new ServiceContainer ();
sc.AddService (typeof (Svc), new Svc());
Svc service1 = sc.GetService (typeof (Svc)) as Svc;
AssertNotNull ("GT1#01", service1);
AssertEquals ("GT1#02", service1, sc.GetService (typeof (Svc)));
sc.AddService (typeof (Svc), new Svc());
}
[Test]
public void TestServiceCreator ()
{
ServiceContainer sc = new ServiceContainer ();
sc.AddService(typeof(Svc), new ServiceCreatorCallback(Svc.ServiceCreator));
AssertNull ("TSC#01", sc.GetService (typeof(NotInSvc)));
Svc service1 = sc.GetService (typeof(Svc)) as Svc;
AssertNotNull ("TSC#02", service1);
AssertEquals ("TSC#03", Svc.TotalObjectsCreatedByCallback, 1);
Svc service2 = sc.GetService (typeof(Svc)) as Svc;
AssertEquals ("TSC#04", service2, service1);
AssertEquals ("TSC#05", Svc.TotalObjectsCreatedByCallback, 1);
}
[Test]
public void TestParentService ()
{
ServiceContainer scParent = new ServiceContainer();
ServiceContainer sc = new ServiceContainer(scParent);
scParent.AddService(typeof(Svc), new Svc());
Svc service1 = sc.GetService (typeof(Svc)) as Svc;
AssertNotNull ("TPS#01", service1);
}
}
}
|