コード例 #1
0
        public void Register_should_not_override_the_validators_for_same_type()
        {
            // Arrange
            var v1 = new OrderValidator();
            var v2 = new OrderValidator2();

            // Action
            ValidatorFactory.Current.Register(v1);
            ValidatorFactory.Current.Register(v2);

            // Assert
            Assert.AreNotSame(v1, v2);
            Assert.AreSame(v1, ValidatorFactory.Current.Resolve <OrderValidator>());
            Assert.AreSame(v2, ValidatorFactory.Current.Resolve <OrderValidator2>());
        }
コード例 #2
0
        public void Resolve_should_return_the_default_validator_as_highest_priority()
        {
            // Arrange
            var v1 = new OrderValidator();
            var v2 = new OrderValidator2();

            // Action
            ValidatorFactory.Current.Register(v2);
            ValidatorFactory.Current.Register(v1, true);

            // Assert
            Assert.AreSame(v1, ValidatorFactory.Current.Resolve <IValidator <Order> >());
            Assert.AreSame(v1, ValidatorFactory.Current.GetValidatorFor <Order>());
            Assert.AreSame(v1, ValidatorFactory.Current.GetValidatorFor(typeof(Order)));
        }
コード例 #3
0
        public void Resolve_should_return_the_demand_type_instead_of_default_type()
        {
            // Arrange
            var v1 = new OrderValidator();
            var v2 = new OrderValidator2();

            // Action
            ValidatorFactory.Current.Register(v1, true);
            ValidatorFactory.Current.Register(v2);

            // Assert
            Assert.AreNotSame(v1, v2);
            Assert.AreSame(v1, ValidatorFactory.Current.Resolve <OrderValidator>());
            Assert.AreSame(v1, ValidatorFactory.Current.GetValidatorFor <Order>());
            Assert.AreSame(v1, ValidatorFactory.Current.GetValidatorFor(typeof(Order)));

            Assert.AreSame(v2, ValidatorFactory.Current.Resolve <OrderValidator2>());
        }