public void AssembliesHaveTheSameTypesAfterMigration(string supportDll, string androidXDll, bool ignoreResourceType, CecilMigrationResult expectedResult)
        {
            var migratedDll = RunMigration(supportDll, expectedResult);

            using (var migrated = AssemblyDefinition.ReadAssembly(migratedDll))
                using (var androidx = AssemblyDefinition.ReadAssembly(androidXDll))
                {
                    CecilAssert.Equal(androidx.GetPublicTypes(ignoreResourceType), migrated.GetPublicTypes(ignoreResourceType));
                }
        }
        public void AssembliesHaveTheSameReferencesAfterMigration(string supportDll, string androidXDll, CecilMigrationResult expectedResult)
        {
            var migratedDll = RunMigration(supportDll, expectedResult);

            using (var migrated = AssemblyDefinition.ReadAssembly(migratedDll))
                using (var androidx = AssemblyDefinition.ReadAssembly(androidXDll))
                {
                    CecilAssert.Equal(
                        androidx.MainModule.AssemblyReferences.OrderBy(a => a.Name),
                        migrated.MainModule.AssemblyReferences.OrderBy(a => a.Name));
                }
        }
        public void AssembliesHaveTheSameNumberOfReferences(string supportDll, string androidXDll)
        {
            using (var support = AssemblyDefinition.ReadAssembly(supportDll))
                using (var androidx = AssemblyDefinition.ReadAssembly(androidXDll))
                {
                    var supportReferences  = support.MainModule.AssemblyReferences.ToArray();
                    var androidxReferences = androidx.MainModule.AssemblyReferences.ToArray();

                    Assert.Equal(supportReferences.Length, androidxReferences.Length);
                    CecilAssert.NotEqual(supportReferences, androidxReferences);
                }
        }
        public void AssembliesHaveTheSameNumberOfTypes(string supportDll, string androidXDll, bool ignoreResourceType)
        {
            using (var support = AssemblyDefinition.ReadAssembly(supportDll))
                using (var androidx = AssemblyDefinition.ReadAssembly(androidXDll))
                {
                    var supportTypes  = support.GetPublicTypes(ignoreResourceType).ToArray();
                    var androidxTypes = androidx.GetPublicTypes(ignoreResourceType).ToArray();

                    Assert.Equal(supportTypes.Length, androidxTypes.Length);
                    CecilAssert.NotEqual(supportTypes, androidxTypes);
                }
        }
        public void AllTypesHaveTheSameMembers(string supportDll, string androidXDll, bool ignoreResourceType, CecilMigrationResult expectedResult)
        {
            var migratedDll = RunMigration(supportDll, expectedResult);

            using (var migrated = AssemblyDefinition.ReadAssembly(migratedDll))
                using (var androidx = AssemblyDefinition.ReadAssembly(androidXDll))
                {
                    var mTypes = migrated.GetPublicTypes(ignoreResourceType).OrderBy(t => t.FullName).ToArray();
                    var xTypes = androidx.GetPublicTypes(ignoreResourceType).OrderBy(t => t.FullName).ToArray();

                    for (var i = 0; i < xTypes.Length; i++)
                    {
                        CecilAssert.Equal(xTypes[i], mTypes[i]);
                    }
                }
        }