// Copyright (c) Microsoft Corporation. All rights reserved. See License.txt in the project root for license information. using Moq; using Xunit; namespace System.Web.Mvc.Test { public class ModelMetadataProvidersTest { [Fact] public void DefaultModelMetadataProviderIsCachedDataAnnotations() { // Arrange ModelMetadataProviders providers = new ModelMetadataProviders(); // Act ModelMetadataProvider provider = providers.CurrentInternal; // Assert Assert.IsType(provider); } [Fact] public void SettingModelMetadataProviderReturnsSetProvider() { // Arrange ModelMetadataProviders providers = new ModelMetadataProviders(); Mock provider = new Mock(); // Act providers.CurrentInternal = provider.Object; // Assert Assert.Same(provider.Object, providers.CurrentInternal); } [Fact] public void SettingNullModelMetadataProviderUsesEmptyModelMetadataProvider() { // Arrange ModelMetadataProviders providers = new ModelMetadataProviders(); // Act providers.CurrentInternal = null; // Assert Assert.IsType(providers.CurrentInternal); } [Fact] public void ModelMetadataProvidersCurrentDelegatesToResolver() { // Arrange Mock provider = new Mock(); Resolver resolver = new Resolver { Current = provider.Object }; ModelMetadataProviders providers = new ModelMetadataProviders(resolver); // Act ModelMetadataProvider result = providers.CurrentInternal; // Assert Assert.Same(provider.Object, result); } private class Resolver : IResolver { public T Current { get; set; } } } }