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>()); }
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))); }
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>()); }