public void GetsTypesFromLoadedAssembliesIncludingUnityAndSystemIfOverridden()
        {
            // ensure type is loaded
            var ignore = new Microsoft.Practices.Unity.Tests.TestNetAssembly.PublicClass1();

            var typesByAssembly = AllClasses.FromLoadedAssemblies(includeSystemAssemblies: true, includeUnityAssemblies: true).GroupBy(t => t.Assembly).ToDictionary(g => g.Key);

            Assert.IsTrue(typesByAssembly.ContainsKey(typeof(Uri).Assembly));
            Assert.IsTrue(typesByAssembly.ContainsKey(typeof(IUnityContainer).Assembly));
            Assert.IsTrue(typesByAssembly.ContainsKey(typeof(Microsoft.Practices.Unity.Tests.TestNetAssembly.PublicClass1).Assembly));
        }
        public void GetsTypesFromLoadedAssembliesExcludingSystemAndUnityByDefault()
        {
            // ensure type is loaded
            var ignore = new Microsoft.Practices.Unity.Tests.TestNetAssembly.PublicClass1();

            var typesByAssembly = AllClasses.FromLoadedAssemblies().GroupBy(t => t.Assembly).ToDictionary(g => g.Key);

            Assert.IsFalse(typesByAssembly.ContainsKey(typeof(Uri).Assembly));
            Assert.IsFalse(typesByAssembly.ContainsKey(typeof(IUnityContainer).Assembly));
            Assert.IsTrue(typesByAssembly.ContainsKey(typeof(Microsoft.Practices.Unity.Tests.TestNetAssembly.PublicClass1).Assembly));
        }
        public void GettingTypesFromLoadedAssembliesWithErrorsThrows()
        {
            // ensure type is loaded
            var ignore = new Microsoft.Practices.Unity.Tests.TestNetAssembly.PublicClass1();

            try
            {
                var types = AllClasses.FromLoadedAssemblies(skipOnError: false).ToArray();
                Assert.Fail("should have thrown");
            }
            catch (Exception e)
            {
                if (e is AssertFailedException)
                {
                    throw;
                }
            }
        }
        public void GetsTypesFromLoadedAssembliesExcludingSystemAndUnityByDefault()
        {
            // ensure type is loaded
            var ignore = new Microsoft.Practices.Unity.Tests.TestNetAssembly.PublicClass1();

            var typesByAssembly = AllClasses.FromLoadedAssemblies().GroupBy(t => t.Assembly).ToDictionary(g => g.Key);

            Assert.IsFalse(typesByAssembly.ContainsKey(typeof(Uri).Assembly));
            Assert.IsFalse(typesByAssembly.ContainsKey(typeof(IUnityContainer).Assembly));
            Assert.IsTrue(typesByAssembly.ContainsKey(typeof(Microsoft.Practices.Unity.Tests.TestNetAssembly.PublicClass1).Assembly));
        }
        public void GettingTypesFromLoadedAssembliesWithErrorsThrows()
        {
            // ensure type is loaded
            var ignore = new Microsoft.Practices.Unity.Tests.TestNetAssembly.PublicClass1();

            try
            {
                var types = AllClasses.FromLoadedAssemblies(skipOnError: false).ToArray();
                Assert.Fail("should have thrown");
            }
            catch (Exception e)
            {
                if (e is AssertFailedException)
                {
                    throw;
                }
            }
        }
        public void GetsTypesFromLoadedAssembliesIncludingUnityIfOverridden()
        {
            // ensure type is loaded
            var ignore = new Microsoft.Practices.Unity.Tests.TestNetAssembly.PublicClass1();

            var typesByAssembly = AllClasses.FromLoadedAssemblies(includeUnityAssemblies: true).GroupBy(t => t.Assembly).ToDictionary(g => g.Key);

            Assert.IsFalse(typesByAssembly.ContainsKey(typeof(Uri).Assembly));
            Assert.IsTrue(typesByAssembly.ContainsKey(typeof(IUnityContainer).Assembly));
            Assert.IsTrue(typesByAssembly.ContainsKey(typeof(Microsoft.Practices.Unity.Tests.TestNetAssembly.PublicClass1).Assembly));
        }