System.Tests.AppDomainTests.GetAssemblies C# (CSharp) Method

GetAssemblies() private method

private GetAssemblies ( ) : void
return void
        public void GetAssemblies()
        {
            Assembly[] assemblies = AppDomain.CurrentDomain.GetAssemblies();
            Assert.NotNull(assemblies);
            Assert.True(assemblies.Length > 0, "There must be assemblies already loaded in the process");
            AppDomain.CurrentDomain.Load(typeof(AppDomainTests).Assembly.GetName().FullName);
            Assembly[] assemblies1 = AppDomain.CurrentDomain.GetAssemblies();
            // Another thread could have loaded an assembly hence not checking for equality
            Assert.True(assemblies1.Length >= assemblies.Length, "Assembly.Load of an already loaded assembly should not cause another load");
            Assembly.LoadFile(typeof(AppDomain).Assembly.Location);
            Assembly[] assemblies2 = AppDomain.CurrentDomain.GetAssemblies();
            Assert.True(assemblies2.Length > assemblies.Length, "Assembly.LoadFile should cause an increase in GetAssemblies list");
            int ctr = 0;
            foreach (var a in assemblies2)
            {
                if (a.Location == typeof(AppDomain).Assembly.Location)
                    ctr++;
            }
            foreach (var a in assemblies)
            {
                if (a.Location == typeof(AppDomain).Assembly.Location)
                    ctr--;
            }
            Assert.True(ctr > 0, "Assembly.LoadFile should cause file to be loaded again");
        }