public void NoValueTypesInAssemblies_TestPassed()
        {
            IAssemblyProvider assemblyProviderMock = Substitute.For <IAssemblyProvider>();

            assemblyProviderMock.GetAllTypes().Returns(new[] { typeof(ReferenceTypeConfig) });

            ConfigObjectTypeValidator configValidator = new ConfigObjectTypeValidator(assemblyProviderMock);

            configValidator.Validate();
        }
        public void ThrowExceptionWhenValueTypeImplementsIConfigObject()
        {
            IAssemblyProvider assemblyProviderMock = Substitute.For <IAssemblyProvider>();

            assemblyProviderMock.GetAllTypes().Returns(new [] { typeof(ReferenceTypeConfig), typeof(ValueTypeConfig) });

            ConfigObjectTypeValidator configValidator = new ConfigObjectTypeValidator(assemblyProviderMock);

            Assert.Throws <ProgrammaticException>(configValidator.Validate);
        }