コード例 #1
0
		public void TestFindServicesCore( string svcDir, bool useBinDir )
		{
			if ( Directory.Exists( svcDir ) )
			{
				Directory.Delete( svcDir, true );
			}

			const string template = "<% @ ServiceHost Service=\"{0}\" %>";
			Directory.CreateDirectory( svcDir );
			if ( useBinDir )
			{
				Directory.CreateDirectory( svcDir + Path.DirectorySeparatorChar + "bin" );
			}

			File.WriteAllText( Path.Combine( svcDir, "1.svc" ), String.Format( CultureInfo.InvariantCulture, template, typeof( TestService1 ).FullName ) );
			File.WriteAllText( Path.Combine( svcDir, "2.svc" ), String.Format( CultureInfo.InvariantCulture, template, typeof( TestService2 ).FullName ) );
			File.Copy(
				typeof( TestService1 ).Assembly.ManifestModule.FullyQualifiedName,
				useBinDir
				? Path.Combine( svcDir, "bin", typeof( TestService1 ).Assembly.ManifestModule.Name )
				: Path.Combine( svcDir, typeof( TestService1 ).Assembly.ManifestModule.Name )
				);
			var target = new FileBasedServiceTypeLocator();
			target.BaseDirectory = svcDir;

			var result = target.FindServices().ToArray();

			Assert.That( result.Any( item => item.ServiceType == typeof( TestService1 ) ) );
			Assert.That( result.Any( item => item.ServiceType == typeof( TestService2 ) ) );
		}
コード例 #2
0
        public void TestFindServicesCore(string svcDir, bool useBinDir)
        {
            if (Directory.Exists(svcDir))
            {
                Directory.Delete(svcDir, true);
            }

            const string template = "<% @ ServiceHost Service=\"{0}\" %>";

            Directory.CreateDirectory(svcDir);
            if (useBinDir)
            {
                Directory.CreateDirectory(svcDir + Path.DirectorySeparatorChar + "bin");
            }

            File.WriteAllText(Path.Combine(svcDir, "1.svc"), String.Format(CultureInfo.InvariantCulture, template, typeof(TestService1).FullName));
            File.WriteAllText(Path.Combine(svcDir, "2.svc"), String.Format(CultureInfo.InvariantCulture, template, typeof(TestService2).FullName));
            File.Copy(
                typeof(TestService1).Assembly.ManifestModule.FullyQualifiedName,
                useBinDir
                                ? Path.Combine(svcDir, "bin", typeof(TestService1).Assembly.ManifestModule.Name)
                                : Path.Combine(svcDir, typeof(TestService1).Assembly.ManifestModule.Name)
                );
            var target = new FileBasedServiceTypeLocator();

            target.BaseDirectory = svcDir;

            var result = target.FindServices().ToArray();

            Assert.That(result.Any(item => item.ServiceType == typeof(TestService1)));
            Assert.That(result.Any(item => item.ServiceType == typeof(TestService2)));
        }
コード例 #3
0
        public void TestFindServices_BaseDirectoryIsNotExist_Ignored()
        {
            var tempDir = ".\\NotExist";

            try
            {
                if (Directory.Exists(tempDir))
                {
                    Directory.Delete(tempDir, true);
                }

                var target = new FileBasedServiceTypeLocator();
                target.BaseDirectory = tempDir;

                var result = target.FindServices().ToArray();

                Assert.That(result.Any(), Is.False);
            }
            finally
            {
                if (Directory.Exists(tempDir))
                {
                    Directory.Delete(tempDir, true);
                }
            }
        }
コード例 #4
0
        public void TestFindServices_NotSvc_Ignored()
        {
            var tempDir = ".\\FileBasedServiceTypeLocatorTest";

            try
            {
                if (Directory.Exists(tempDir))
                {
                    Directory.Delete(tempDir, true);
                }

                const string template = "<% @ ServiceHost Service=\"{0}\" %>";
                Directory.CreateDirectory(tempDir);
                File.WriteAllText(Path.Combine(tempDir, "1.svg"), String.Format(CultureInfo.InvariantCulture, template, typeof(TestService1).FullName));
                var target = new FileBasedServiceTypeLocator();
                target.BaseDirectory = tempDir;

                var result = target.FindServices().ToArray();

                Assert.That(result.Any(), Is.False);
            }
            finally
            {
                if (Directory.Exists(tempDir))
                {
                    Directory.Delete(tempDir, true);
                }
            }
        }
コード例 #5
0
        public void TestFindServices_InvalidSvcFile_Failed()
        {
            var tempDir = ".\\FileBasedServiceTypeLocatorTest";

            try
            {
                if (Directory.Exists(tempDir))
                {
                    Directory.Delete(tempDir, true);
                }

                const string template = "<% @ ServiceHost sService=\"{0}\" %>";
                Directory.CreateDirectory(tempDir);
                File.WriteAllText(Path.Combine(tempDir, "1.svc"), String.Format(CultureInfo.InvariantCulture, template, "Service1"));
                var target = new FileBasedServiceTypeLocator();
                target.BaseDirectory = tempDir;

                var result = target.FindServices().ToArray();
            }
            finally
            {
                if (Directory.Exists(tempDir))
                {
                    Directory.Delete(tempDir, true);
                }
            }
        }
コード例 #6
0
        public void TestBaseDirectory_Blanks_ResetToNull()
        {
            var target = new FileBasedServiceTypeLocator();

            foreach (var value in new[] { String.Empty, null, " " })
            {
                target.BaseDirectory = "A";
                target.BaseDirectory = value;
                Assert.That(target.BaseDirectory, Is.Null, "Set value:\"{0}\"", value);
            }
        }
コード例 #7
0
        public void TestFindServices_FromAppBase()
        {
            var file = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "1.svc");

            try
            {
                const string template = "<% @ ServiceHost Service=\"{0}\" %>";
                File.WriteAllText(file, String.Format(CultureInfo.InvariantCulture, template, typeof(TestService1).FullName));
                var target = new FileBasedServiceTypeLocator();

                var result = target.FindServices().ToArray();

                Assert.That(result.Any(item => item.ServiceType == typeof(TestService1)));
            }
            finally
            {
                File.Delete(file);
            }
        }
コード例 #8
0
		public void TestBaseDirectory_Blanks_ResetToNull()
		{
			var target = new FileBasedServiceTypeLocator();
			foreach ( var value in new[] { String.Empty, null, " " } )
			{
				target.BaseDirectory = "A";
				target.BaseDirectory = value;
				Assert.That( target.BaseDirectory, Is.Null, "Set value:\"{0}\"", value );
			}
		}
コード例 #9
0
		public void TestFindServices_FromAppBase()
		{
			var file = Path.Combine( AppDomain.CurrentDomain.BaseDirectory, "1.svc" );
			try
			{
				const string template = "<% @ ServiceHost Service=\"{0}\" %>";
				File.WriteAllText( file, String.Format( CultureInfo.InvariantCulture, template, typeof( TestService1 ).FullName ) );
				var target = new FileBasedServiceTypeLocator();

				var result = target.FindServices().ToArray();

				Assert.That( result.Any( item => item.ServiceType == typeof( TestService1 ) ) );
			}
			finally
			{
				File.Delete( file );
			}
		}
コード例 #10
0
		public void TestFindServices_BaseDirectoryIsNotExist_Ignored()
		{
			var tempDir = ".\\NotExist";
			try
			{
				if ( Directory.Exists( tempDir ) )
				{
					Directory.Delete( tempDir, true );
				}

				var target = new FileBasedServiceTypeLocator();
				target.BaseDirectory = tempDir;

				var result = target.FindServices().ToArray();

				Assert.That( result.Any(), Is.False );
			}
			finally
			{
				if ( Directory.Exists( tempDir ) )
				{
					Directory.Delete( tempDir, true );
				}
			}
		}
コード例 #11
0
		public void TestFindServices_NotSvc_Ignored()
		{
			var tempDir = ".\\FileBasedServiceTypeLocatorTest";
			try
			{
				if ( Directory.Exists( tempDir ) )
				{
					Directory.Delete( tempDir, true );
				}

				const string template = "<% @ ServiceHost Service=\"{0}\" %>";
				Directory.CreateDirectory( tempDir );
				File.WriteAllText( Path.Combine( tempDir, "1.svg" ), String.Format( CultureInfo.InvariantCulture, template, typeof( TestService1 ).FullName ) );
				var target = new FileBasedServiceTypeLocator();
				target.BaseDirectory = tempDir;

				var result = target.FindServices().ToArray();

				Assert.That( result.Any(), Is.False );
			}
			finally
			{
				if ( Directory.Exists( tempDir ) )
				{
					Directory.Delete( tempDir, true );
				}
			}
		}
コード例 #12
0
		public void TestFindServices_InvalidSvcFile_Failed()
		{
			var tempDir = ".\\FileBasedServiceTypeLocatorTest";
			try
			{
				if ( Directory.Exists( tempDir ) )
				{
					Directory.Delete( tempDir, true );
				}

				const string template = "<% @ ServiceHost sService=\"{0}\" %>";
				Directory.CreateDirectory( tempDir );
				File.WriteAllText( Path.Combine( tempDir, "1.svc" ), String.Format( CultureInfo.InvariantCulture, template, "Service1" ) );
				var target = new FileBasedServiceTypeLocator();
				target.BaseDirectory = tempDir;

				var result = target.FindServices().ToArray();
			}
			finally
			{
				if ( Directory.Exists( tempDir ) )
				{
					Directory.Delete( tempDir, true );
				}
			}
		}