using Developpez.Dotnet.Windows.Service; using NUnit.Framework; namespace Developpez.Dotnet.Windows.Tests.Service { [TestFixture] public class ServiceLocatorTests { [Test] public void Test_NoName() { ServiceLocator.Instance.RegisterService(new FooService()); var service = ServiceLocator.Instance.GetService(); Assert.IsNotNull(service); Assert.IsTrue(service is FooService); } [Test] public void Test_WithName() { ServiceLocator.Instance.RegisterService("bar1", new BarService1()); ServiceLocator.Instance.RegisterService("bar2", new BarService2()); var service1 = ServiceLocator.Instance.GetService("bar1"); var service2 = ServiceLocator.Instance.GetService("bar2"); Assert.IsNotNull(service1); Assert.IsNotNull(service2); Assert.IsTrue(service1 is BarService1); Assert.IsTrue(service2 is BarService2); } [Test] public void Test_ServiceNotFound() { bool wasThrown = false; try { var service = ServiceLocator.Instance.GetService(); } catch (ServiceNotFoundException) { wasThrown = true; } Assert.IsTrue(wasThrown); } #region Test services interface IFooService { } interface IBarService { } interface IBazService { } class FooService : IFooService { } class BarService1 : IBarService { } class BarService2 : IBarService { } #endregion } }