Example #1
0
            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();
            }
Example #2
0
            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();
            }
Example #3
0
            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");
            }
Example #4
0
            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.");
            }