Ejemplo n.º 1
0
        public void GetTypesTest()
        {
            var paths = CecilTypeUtility.GetAssemblyPaths(new[] { "Stackray.TestGenericJobs.dll" })
                        .ToArray();

            Assert.True(paths != null);
        }
Ejemplo n.º 2
0
        public void ResolveGenericJobsTest()
        {
            var assemblyPaths = CecilTypeUtility.GetAssemblyPaths(new[] { "Stackray.TestGenericJobs.dll" });
            var jobResolver   = new GenericResolver(assemblyPaths);
            var resolvedJobs  = jobResolver.ResolveGenericJobs();

            jobResolver.Dispose();
            Assert.True(resolvedJobs.Count() == GenericJobs <bool, bool> .CONCRETE_UNIQUE_JOB_ENTRIES);
        }
Ejemplo n.º 3
0
        public void GetGenericJobsCallsTest()
        {
            var assemblyPaths = CecilTypeUtility.GetAssemblyPaths(new[] { "Stackray.TestGenericJobs.dll" });
            var jobResolver   = new GenericResolver(assemblyPaths);
            var genericJobs   = jobResolver.GetGenericJobCalls();

            jobResolver.Dispose();
            Assert.True(genericJobs.Count() == GenericJobs <bool, bool> .GENERIC_UNIQUE_JOB_ENTRIES);
        }
Ejemplo n.º 4
0
        public void ResolveGenericCascadeCallTest()
        {
            var assemblyPaths = CecilTypeUtility.GetAssemblyPaths(new[] { "Stackray.TestGenericCascadeCall.dll" });
            var jobResolver   = new GenericResolver(assemblyPaths);
            var resolvedJobs  = jobResolver.ResolveGenericJobs();

            jobResolver.Dispose();
            Assert.True(
                resolvedJobs.Count() == 1 &&
                (resolvedJobs.First() as GenericInstanceType).GenericArguments.Count == 1 &&
                (resolvedJobs.First() as GenericInstanceType).GenericArguments.First().Name == typeof(int).Name);
        }
Ejemplo n.º 5
0
        public void ResolveGenericSystemsTest()
        {
            var assemblyPaths = CecilTypeUtility.GetAssemblyPaths(new[] { "Stackray.TestGenericSystems.dll" });
            var jobResolver   = new GenericResolver(assemblyPaths);
            var resolvedJobs  = jobResolver.ResolveGenericJobs();

            jobResolver.Dispose();
            Assert.True(
                resolvedJobs.Count() == 2 &&
                resolvedJobs.Any(job => (job as GenericInstanceType).GenericArguments.First().Name == typeof(int).Name) &&
                resolvedJobs.Any(job => (job as GenericInstanceType).GenericArguments.First().Name == typeof(double).Name));
        }
Ejemplo n.º 6
0
        public void DetectGenericJobTest()
        {
            var jobCount     = 0;
            var assemblyPath = CecilTypeUtility.GetAssemblyPaths(new[] { "Stackray.TestGenericJobs.dll" }).Single();

            using (var assembly = AssemblyDefinition.ReadAssembly(assemblyPath)) {
                var genericJobTypes = GenericResolver.GetGenericJobCalls(assembly)
                                      .Select(c => CecilTypeUtility.GetType(c.Type))
                                      .ToArray();
                jobCount = genericJobTypes.Length;
            }
            Assert.True(jobCount == GenericJobs <bool, bool> .GENERIC_JOB_ENTRIES);
        }
Ejemplo n.º 7
0
        public void WriteNewAssemblyInjectionTest()
        {
            var writeAssemblyPath = AssembliesPath + "TestConcreteAssembly.dll";
            var assemblyPaths     = CecilTypeUtility.GetAssemblyPaths(new[] { "Stackray.TestGenericJobs.dll" });
            var jobResolver       = new GenericResolver(assemblyPaths);
            var resolvedJobs      = jobResolver.ResolveGenericJobs();

            jobResolver.Dispose();
            var outputAssembly = CecilTypeUtility.CreateAssembly("TestConcreteJobs", resolvedJobs);

            outputAssembly.Write(writeAssemblyPath);

            var assembly = AssemblyDefinition.ReadAssembly(writeAssemblyPath);
            var methods  = CecilTypeUtility.GetMethodDefinitions(assembly).Where(m => m.FullName.Contains("TestConcreteJobs"));

            assembly.Dispose();
            Assert.True(methods.Any());
        }