public void TestClearServices_Empty_Harmless()
        {
            var target = new DefaultServiceTypeLocator();

            target.ClearServices();

            Assert.That(target.EnumerateServices().Count(), Is.EqualTo(0));
        }
        public void TestFindServices_EquiavalantToEnumerateServices()
        {
            var target = new DefaultServiceTypeLocator();

            target.AddService(typeof(Service));
            target.AddService(typeof(Service2));

            Assert.That(target.FindServices(), Is.EqualTo(target.EnumerateServices()));
        }
		public void TestAddService_Once_Sucess()
		{
			var serviceType = typeof( Service );

			var target = new DefaultServiceTypeLocator();

			var result = target.AddService( serviceType );

			Assert.That( result, Is.True );
			Assert.That( target.EnumerateServices().Count(), Is.EqualTo( 1 ) );
		}
        public void TestRemoveService_Empty_Fail()
        {
            var serviceType = typeof(Service);

            var target = new DefaultServiceTypeLocator();

            var result = target.RemoveService(serviceType);

            Assert.That(result, Is.False);
            Assert.That(target.EnumerateServices().Count(), Is.EqualTo(0));
        }
        public void TestAddService_Once_Sucess()
        {
            var serviceType = typeof(Service);

            var target = new DefaultServiceTypeLocator();

            var result = target.AddService(serviceType);

            Assert.That(result, Is.True);
            Assert.That(target.EnumerateServices().Count(), Is.EqualTo(1));
        }
        public void TestClearServices_NonEmpty_Cleared()
        {
            var target = new DefaultServiceTypeLocator();

            target.AddService(typeof(Service));
            target.AddService(typeof(Service2));

            target.ClearServices();

            Assert.That(target.EnumerateServices().Count(), Is.EqualTo(0));
        }
        public void TestRemoveService_Registerd_Success()
        {
            var serviceType = typeof(Service);

            var target = new DefaultServiceTypeLocator();

            target.AddService(serviceType);
            var result = target.RemoveService(serviceType);

            Assert.That(result, Is.True);
            Assert.That(target.EnumerateServices().Count(), Is.EqualTo(0));
        }
        public void TestRemoveService_SpecifyNonServiceType_JustFail()
        {
            var serviceType = typeof(Service);

            var target = new DefaultServiceTypeLocator();

            target.AddService(serviceType);
            var result = target.RemoveService(typeof(object));

            Assert.That(result, Is.False);
            Assert.That(target.EnumerateServices().Count(), Is.EqualTo(1));
        }
        public void TestAddService_Twise_FirstIsSucceededAndSecondIsFailed()
        {
            var serviceType = typeof(Service);

            var target = new DefaultServiceTypeLocator();

            var result1 = target.AddService(serviceType);
            var result2 = target.AddService(serviceType);

            Assert.That(result1, Is.True);
            Assert.That(result2, Is.False);
            Assert.That(target.EnumerateServices().Count(), Is.EqualTo(1));
        }
		public void TestAddService_Twise_FirstIsSucceededAndSecondIsFailed()
		{
			var serviceType = typeof( Service );

			var target = new DefaultServiceTypeLocator();

			var result1 = target.AddService( serviceType );
			var result2 = target.AddService( serviceType );

			Assert.That( result1, Is.True );
			Assert.That( result2, Is.False );
			Assert.That( target.EnumerateServices().Count(), Is.EqualTo( 1 ) );
		}
		public void TestFindServices_EquiavalantToEnumerateServices()
		{
			var target = new DefaultServiceTypeLocator();
			target.AddService( typeof( Service ) );
			target.AddService( typeof( Service2 ) );

			Assert.That( target.FindServices(), Is.EqualTo( target.EnumerateServices() ) );
		}
		public void TestEnumerateServices_Initial_Empty()
		{
			var target = new DefaultServiceTypeLocator();

			Assert.That( target.EnumerateServices().Any(), Is.False );
		}
		public void TestClearServices_Empty_Harmless()
		{
			var target = new DefaultServiceTypeLocator();

			target.ClearServices();

			Assert.That( target.EnumerateServices().Count(), Is.EqualTo( 0 ) );
		}
		public void TestClearServices_NonEmpty_Cleared()
		{
			var target = new DefaultServiceTypeLocator();

			target.AddService( typeof( Service ) );
			target.AddService( typeof( Service2 ) );

			target.ClearServices();

			Assert.That( target.EnumerateServices().Count(), Is.EqualTo( 0 ) );
		}
		public void TestRemoveService_Empty_Fail()
		{
			var serviceType = typeof( Service );

			var target = new DefaultServiceTypeLocator();

			var result = target.RemoveService( serviceType );

			Assert.That( result, Is.False );
			Assert.That( target.EnumerateServices().Count(), Is.EqualTo( 0 ) );
		}
        public void TestEnumerateServices_Initial_Empty()
        {
            var target = new DefaultServiceTypeLocator();

            Assert.That(target.EnumerateServices().Any(), Is.False);
        }
		public void TestRemoveService_Registerd_Success()
		{
			var serviceType = typeof( Service );

			var target = new DefaultServiceTypeLocator();

			target.AddService( serviceType );
			var result = target.RemoveService( serviceType );

			Assert.That( result, Is.True );
			Assert.That( target.EnumerateServices().Count(), Is.EqualTo( 0 ) );
		}
		public void TestRemoveService_SpecifyNonServiceType_JustFail()
		{
			var serviceType = typeof( Service );

			var target = new DefaultServiceTypeLocator();

			target.AddService( serviceType );
			var result = target.RemoveService( typeof( object ) );

			Assert.That( result, Is.False );
			Assert.That( target.EnumerateServices().Count(), Is.EqualTo( 1 ) );
		}