public void SetUp() { _assemblyMetadata = new AssemblyMetadata(_assemblyBytes.ConvertToMemoryStream()); _mockAssemblyCache = new Mock<MetadataCache<AssemblyMetadata>>(MockBehavior.Strict); _mockAssemblyCache.Setup(cache => cache[It.IsAny<uint>()]).Returns(() => _assemblyMetadata).Verifiable(); _moduleMetadata = new ModuleMetadata(_moduleBytes.ConvertToMemoryStream(), _mockAssemblyCache.Object); _mockAssemblyCache.Verify(); }
public virtual void DeserializeAllMetadataAndCacheIt(Stream byteStream) { long initialStreamPostion = byteStream.Position; uint metadataByteCount = byteStream.DeserializeUint32(); long metadataLastBytePosition = metadataByteCount + sizeof (uint) + initialStreamPostion; while (byteStream.Position < metadataLastBytePosition) { MetadataTypes metadataType = byteStream.DeserializeMetadataType(); MetadataBase result = null; switch (metadataType) { case MetadataTypes.AssemblyMetadata: var assemblyMetadata = new AssemblyMetadata(byteStream); _assemblyCache.Add(assemblyMetadata); result = assemblyMetadata; break; case MetadataTypes.ModuleMedatada: var moduleMetadata = new ModuleMetadata(byteStream, _assemblyCache); _moduleCache.Add(moduleMetadata); result = moduleMetadata; break; case MetadataTypes.ClassMedatada: var classMetadata = new ClassMetadata(byteStream, _moduleCache); _classCache.Add(classMetadata); result = classMetadata; break; case MetadataTypes.MethodMedatada: var methodMetadata = new MethodMetadata(byteStream, _classCache, _sourceLocatorFactory); _methodCache.Add(methodMetadata); result = methodMetadata; break; default: throw new ArgumentOutOfRangeException(); } Contract.Assume(result != null); Contract.Assume(result.Id != 0); Contract.Assume(result.MdToken != 0); Contract.Assume(metadataType == result.MetadataType); } }
public void SetUp() { _assemblyMetadata = new AssemblyMetadata(_rawBytes.ConvertToMemoryStream()); }