Exemple #1
0
        public void GivenAssemblyExists_WhenGetReferenceIdentity_ShouldReturnObject()
        {
            var guid        = typeof(IReferenceIdentity).GUID;
            var path        = Assembly.GetExecutingAssembly().Location;
            var refIdentity = FusionNative.GetAssemblyIdentityFromFile(path, ref guid) as IReferenceIdentity;

            Assert.NotNull(refIdentity);
        }
Exemple #2
0
        public void WhenGetEnumThenMustReturnSuccessResult(CreateAssemblyEnumFlags flasg)
        {
            IAssemblyEnum assemblyEnum;
            var           hresult = FusionNative.CreateAssemblyEnum(out assemblyEnum, null, null, flasg, 0);

            Assert.True(hresult);
            Assert.NotNull(assemblyEnum);
        }
        private static IAssemblyEnum GetGacAssemblyEnum(IAssemblyName assemblyName = null)
        {
            const CreateAssemblyEnumFlags flags = CreateAssemblyEnumFlags.Zap;
            IAssemblyEnum assemblyEnum;
            var           hresult = FusionNative.CreateAssemblyEnum(out assemblyEnum, null, assemblyName, flags, 0);

            Assert.True(hresult, "Couldn't create assembly enum object");
            return(assemblyEnum);
        }
        private static IAssemblyCache GetGlobalAssemblyCache()
        {
            IAssemblyCache assemblyCache;
            var            hResult = FusionNative.CreateAssemblyCache(out assemblyCache, 0);

            Assert.True(hResult);

            return(assemblyCache);
        }
        public void GetNextMustReturnAtLeastOneAssembly(CreateAssemblyEnumFlags flags)
        {
            IAssemblyEnum assemblyEnum;
            var           hresult = FusionNative.CreateAssemblyEnum(out assemblyEnum, null, null, flags, 0);

            Assert.True(hresult);

            IApplicationContext applicationContext;
            IAssemblyName       assemblyName;

            hresult = assemblyEnum.GetNextAssembly(out applicationContext, out assemblyName, GetNextAssemblyFlags.None);
            Assert.True(hresult);
            Assert.NotNull(assemblyName);
        }
        public void MustReturnRightsPaths()
        {
            var gacPathLength = 0;

            var flags   = GetCachePathFlags.Gac;
            var hResult = FusionNative.GetCachePath(flags, null, ref gacPathLength);

            if (hResult.InsufficientBuffer)
            {
                var gacPath = new StringBuilder(gacPathLength);
                hResult = FusionNative.GetCachePath(flags, gacPath, ref gacPathLength);

                Assert.True(hResult);
                var expectedPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Windows), "assembly", "GAC");
                Assert.Equal(expectedPath, gacPath.ToString(), StringComparer.OrdinalIgnoreCase);
            }
        }
Exemple #7
0
        public void FactMethodName()
        {
            IAssemblyEnum assemblyEnum;

            Assert.True(FusionNative.CreateAssemblyEnum(out assemblyEnum, null, null, CreateAssemblyEnumFlags.Gac, 0));

            IApplicationContext applicationContext;
            IAssemblyName       assemblyName;

            Assert.True(assemblyEnum.GetNextAssembly(out applicationContext, out assemblyName, GetNextAssemblyFlags.None));

            IInstallReferenceEnum installReferenceEnum;

            Assert.True(FusionNative.CreateInstallReferenceEnum(out installReferenceEnum, assemblyName,
                                                                CreateInstallReferenceFlags.None, 0));
            Assert.NotNull(installReferenceEnum);
        }
        public void ResetNotImplemented(CreateAssemblyEnumFlags flags)
        {
            IAssemblyEnum assemblyEnum;
            var           hresult = FusionNative.CreateAssemblyEnum(out assemblyEnum, null, null, flags, 0);

            Assert.True(hresult);

            IApplicationContext applicationContext;
            IAssemblyName       firstAssemblyName;

            hresult = assemblyEnum.GetNextAssembly(out applicationContext, out firstAssemblyName, GetNextAssemblyFlags.None);
            Assert.True(hresult);
            Assert.NotNull(firstAssemblyName);

            hresult = assemblyEnum.Reset();
            Assert.Throws <NotImplementedException>(() => (bool)hresult);
        }
        static IAssemblyName GetMscorlib()
        {
            IAssemblyName filterAssemblyName;
            var           hresult = FusionNative.CreateAssemblyNameObject(out filterAssemblyName, MscorlibStrongName,
                                                                          CreateAssemblyNameObjectFlags.CanofParseDispayName, 0);

            Assert.True(hresult, "Couldn't create assembly name object");

            var assemblyEnum = GetGacAssemblyEnum(filterAssemblyName);

            IAssemblyName       assemblyName;
            IApplicationContext applicationContext;

            hresult = assemblyEnum.GetNextAssembly(out applicationContext, out assemblyName, GetNextAssemblyFlags.None);
            hresult = assemblyEnum.GetNextAssembly(out applicationContext, out assemblyName, GetNextAssemblyFlags.None);
            Assert.True(hresult, "Couldn't read next assembly name object");

            return(assemblyName);
        }
Exemple #10
0
 public AssemblyName(string fullName)
 {
     HRESULT.ThrowOnFailure(FusionNative.CreateAssemblyNameObject(out _assemblyName, null, 0, IntPtr.Zero));
     this.FullName = fullName;
 }
Exemple #11
0
 public AssemblyName()
 {
     HRESULT.ThrowOnFailure(FusionNative.CreateAssemblyNameObject(out _assemblyName, null, 0, IntPtr.Zero));
 }