public void Should_SetSettings() { var holder = new TestClassSpecificationAndSettingsHolder() { Specification = s => s, Settings = s => s .WithTranslation("a", "a", "a") .WithTranslation("a", "b", "c") .WithTranslation("x", "y", "z") .WithReferenceLoopProtection() }; var validator = Validator.Factory.Create(holder); validator.Settings.Should().NotBeNull(); validator.Settings.Translations.Should().NotBeNull(); validator.Settings.Translations.ShouldBeLikeTranslations(new Dictionary <string, IReadOnlyDictionary <string, string> >() { ["English"] = Translation.English, ["a"] = new Dictionary <string, string>() { ["a"] = "a", ["b"] = "c" }, ["x"] = new Dictionary <string, string>() { ["y"] = "z" } }); validator.Settings.ReferenceLoopProtectionEnabled.Should().BeTrue(); }
public void Should_LockSettings_When_OverridenByInlineBuilder() { var holder = new TestClassSpecificationAndSettingsHolder() { Specification = s => s, Settings = s => s }; var validator = Validator.Factory.Create(holder, s => s); ((ValidatorSettings)validator.Settings).IsLocked.Should().BeTrue(); }
public void Should_ThrowException_When_SpecificationHolder_ContainsNullSpecification() { var holder = new TestClassSpecificationAndSettingsHolder() { Specification = null }; Action action = () => _ = Validator.Factory.Create(holder); var exception = action.Should().Throw <ArgumentException>().And; exception.ParamName.Should().Be("specificationHolder"); exception.Message.Should().StartWith("ISettingsHolder can't have null Settings"); }
public void Should_ThrowException_When_PassingExternalSettings_UsingHolder_AndInlineBuilder() { var holder = new TestClassSpecificationAndSettingsHolder() { Specification = s => s, Settings = s => s }; Action action = () => _ = Validator.Factory.Create(holder, s => new ValidatorSettings()); var exception = action.Should().ThrowExactly <InvalidOperationException>().And; exception.Message.Should().Be("Validator settings fluent API should return the same reference as received."); }