public void ValidateValue_WithoutValidValue_ThrowsException()
        {
            var betweenOneAndTen = new ComparableExodataDeclaration<int>(1, 10, 5);

            var resolver = new StandardExodataResolver();
            resolver.Bind(betweenOneAndTen, 42);

            ExodataDeclaration.SetResolver(resolver);

            Assert.Throws<ExodataValidationException<int>>(() => betweenOneAndTen.Get());
        }
        public void Get_WithNoExodataResolverAndBadDefault_ThrowsValidationExceptionWithCorrectInvalidValue()
        {
            var maxLengthWithBadDefault = new ComparableExodataDeclaration<int>(1, 10, 42);

            var exception = Assert.Throws<ExodataValidationException<int>>(() => maxLengthWithBadDefault.For<string>());
            Assert.AreEqual(42, exception.InvalidValue);
        }
        public void ValidateValue_WithValidValue_DoesNotThrowException()
        {
            var betweenOneAndTen = new ComparableExodataDeclaration<int>(1, 10, 5);

            var resolver = new StandardExodataResolver();
            resolver.Bind(betweenOneAndTen, 7);

            ExodataDeclaration.SetResolver(resolver);
            
            Assert.AreEqual(7, betweenOneAndTen.Get());
        }