public void Create_WithLocator_ShouldNotBeNull()
        {
            var sut = new ModelConverterBuilder();

            var locator = new Mock<IServiceLocator>();

            var instance = sut.UseLocator(locator.Object).Create;

            instance.ShouldNotBeNull();

            instance.ShouldBeOfType<ModelConverter>();
        }
        public void UseInterceptor_WithNotNull_ShouldNotBeNull()
        {
            var sut = new ModelConverterBuilder();

            var interceptor = new Mock<IModelConverterInterceptor>();

            var chain = sut.UseInterceptor(interceptor.Object);

            sut.ModelConverterInterceptor.ShouldNotBeNull();

            chain.ShouldNotBeNull();

            chain.ShouldBeAssignableTo<IModelConverterCreateBuilder>();
        }
        public void UseLocator_WithNotNull_ShouldNotBeNull()
        {
            var sut = new ModelConverterBuilder();

            var locator = new Mock<IServiceLocator>();

            var chain = sut.UseLocator(locator.Object);

            sut.ConverterFactory.ShouldNotBeNull();

            sut.ConverterFactory.ShouldBeOfType<ConverterFactory>();

            chain.ShouldNotBeNull();

            chain.ShouldBeAssignableTo<IModelConverterInterceptorBuilder>();
        }
        public void UseInterceptor_WithNull_ShouldThrowException()
        {
            var sut = new ModelConverterBuilder();

            Should.Throw<ArgumentNullException>(() => { var chain = sut.UseInterceptor(null); });
        }