ITypeMetadataResolver CreateMetadataResolver() { m_CSharpMetadataFactoryMethod = (th, t) => new CSharpTypeBasedMetadata(TypeHandleSerializer, MemberConstrainer, th, t); var typeBasedMetadataFactory = new CSharpTypeBasedMetadataFactory(TypeHandleSerializer, m_CSharpMetadataFactoryMethod); var cachedTypeBasedMetadataFactory = new CachedTypeMetadataFactory(typeBasedMetadataFactory); m_GraphMetadataFactoryMethod = (th, t) => new GraphBasedMetadata(TypeHandleSerializer, th, t); var graphBasedMetadataFactory = new GraphBasedMetadataFactory(m_GraphMetadataFactoryMethod); var typeMetadataFactory = new TypeHandleMetadataFactory(cachedTypeBasedMetadataFactory, graphBasedMetadataFactory); return(new TypeMetadataResolver(typeMetadataFactory)); }
public void Should_CreateGraphMetadata_WhenGraphBasedTypeHandle() { //Arrange var typeMetadataFactoryMock = GetMockedTypeMetadataFactory(); var graphMetadataFactoryMock = GetMockedGraphMetadataFactory(); var factory = new TypeHandleMetadataFactory(typeMetadataFactoryMock.Object, graphMetadataFactoryMock.Object); //Act var graphBasedMetadata = factory.Create(s_GraphBasedHandle); //Assert Assert.That(graphBasedMetadata, Is.SameAs(k_GraphBasedMetadata)); graphMetadataFactoryMock.Verify(f => f.Create(It.IsAny <TypeHandle>()), Times.Exactly(1)); }
public void Should_CreateEmptyMetadata_WhenEmptyTypeHandle() { //Arrange var typeMetadataFactoryMock = GetMockedTypeMetadataFactory(); var graphMetadataFactoryMock = GetMockedGraphMetadataFactory(); var factory = new TypeHandleMetadataFactory(typeMetadataFactoryMock.Object, graphMetadataFactoryMock.Object); //Act var emptyMetadata = factory.Create(default(TypeHandle)); //Assert graphMetadataFactoryMock.Verify(f => f.Create(It.IsAny <TypeHandle>()), Times.Exactly(0)); typeMetadataFactoryMock.Verify(f => f.Create(It.IsAny <TypeHandle>()), Times.Exactly(0)); Assert.That(emptyMetadata, Is.SameAs(EmptyTypeMetadata.Instance)); }