public void DesignerSerializationManager_GetRuntimeType_ValidProvider_ReturnsExpected(string typeName, Type resolvedType)
        {
            var mockTypeResolutionService = new Mock <ITypeResolutionService>(MockBehavior.Strict);

            mockTypeResolutionService
            .Setup(s => s.GetType(typeName))
            .Returns(resolvedType)
            .Verifiable();
            var mockServiceProvider = new Mock <IServiceProvider>(MockBehavior.Strict);

            mockServiceProvider
            .Setup(p => p.GetService(typeof(IDesignerHost)))
            .Returns((IDesignerHost)null);
            mockServiceProvider
            .Setup(p => p.GetService(typeof(ITypeResolutionService)))
            .Returns(mockTypeResolutionService.Object)
            .Verifiable();
            var manager = new DesignerSerializationManager(mockServiceProvider.Object);

            Assert.Same(resolvedType, manager.GetRuntimeType(typeName));
            mockServiceProvider.Verify(p => p.GetService(typeof(ITypeResolutionService)), Times.Once());
            mockTypeResolutionService.Verify(s => s.GetType(typeName), Times.Once());

            // Call again.
            Assert.Same(resolvedType, manager.GetRuntimeType(typeName));
            mockServiceProvider.Verify(p => p.GetService(typeof(ITypeResolutionService)), Times.Once());
            mockTypeResolutionService.Verify(s => s.GetType(typeName), Times.Exactly(2));
        }
        public void DesignerSerializationManager_GetRuntimeType_NullTypeName_ThrowsArgumentNullException()
        {
            var manager = new DesignerSerializationManager();

            Assert.Throws <ArgumentNullException>("typeName", () => manager.GetRuntimeType(null));
        }
        public void DesignerSerializationManager_GetRuntimeType_NoProvider_ReturnsExpected(string typeName, Type expected)
        {
            var manager = new DesignerSerializationManager();

            Assert.Same(expected, manager.GetRuntimeType(typeName));
        }
        public void DesignerSerializationManager_GetRuntimeType_InvalidProvider_ReturnsExpected(IServiceProvider provider)
        {
            var manager = new DesignerSerializationManager(provider);

            Assert.Equal(typeof(int), manager.GetRuntimeType(typeof(int).FullName));
        }