public void PropertySource_Hidden_Properties_Warn()
        {
            // Create a mock logger
            var mockLogger = new MockLogger();

            //
            // TODO: [LK:2016-08-12] Could we initalize this in an `SetUpFixture` method?
            // Then it could apply across all unit-tests.
            //
            if (ResolverBase <LoggerResolver> .HasCurrent)
            {
                ResolverBase <LoggerResolver> .Current.SetLogger(mockLogger);
            }
            else
            {
                ResolverBase <LoggerResolver> .Current = new LoggerResolver(mockLogger)
                {
                    CanResolveBeforeFrozen = true
                };
            }

            // Create a hidden mapping
            var instanceName = "Instance Name";
            var instanceUrl  = "/instance/url";
            var customName   = "Custom Name";
            var customProp   = "Custom Prop";

            var content = new MockPublishedContent
            {
                Name       = instanceName,
                Url        = instanceUrl,
                Properties = new[]
                {
                    new MockPublishedContentProperty("name", customName),
                    new MockPublishedContentProperty("custom", customProp)
                }
            };

            // Check for hidden Umbraco properties
            Ditto.DefaultPropertySource = PropertySource.InstanceThenUmbracoProperties;
            DittoTypeInfoCache.Clear <BasicModelProperty>();

            var model = content.As <BasicModelProperty>();

            var logMessages = mockLogger.GetLogMessages().Where(x => x.MessageType == LogMessageType.Warn && x.CallingType == typeof(UmbracoPropertyAttribute));

            Assert.NotNull(logMessages);
            Assert.That(logMessages.Any(x => x.Message.Contains("hides a property in the Umbraco properties collection")));

            // Check for hidden instance properties
            mockLogger.ClearLogMessages();

            Ditto.DefaultPropertySource = PropertySource.UmbracoThenInstanceProperties;
            DittoTypeInfoCache.Clear <BasicModelProperty>();

            model = content.As <BasicModelProperty>();

            logMessages = mockLogger.GetLogMessages().Where(x => x.MessageType == LogMessageType.Warn && x.CallingType == typeof(UmbracoPropertyAttribute));

            Assert.NotNull(logMessages);
            Assert.That(logMessages.Any(x => x.Message.Contains("hides an instance property")));

            // Reset
            Ditto.DefaultPropertySource = PropertySource.InstanceThenUmbracoProperties;
            DittoTypeInfoCache.Clear <BasicModelProperty>();
        }