Esempio n. 1
0
        public static void Name_PropertyGet_EqualsCtorArg()
        {
            Identifier checkName = "test_check";
            var        check     = new PostgreSqlCheckConstraint(checkName, "test_check");

            Assert.That(check.Name.UnwrapSome(), Is.EqualTo(checkName));
        }
Esempio n. 2
0
        public static void Definition_PropertyGet_EqualsCtorArg()
        {
            const string checkDefinition = "test_check_definition";
            var          check           = new PostgreSqlCheckConstraint("test_check", checkDefinition);

            Assert.That(check.Definition, Is.EqualTo(checkDefinition));
        }
Esempio n. 3
0
        public static void ToString_WhenInvoked_ReturnsExpectedValues(string name, string expectedResult)
        {
            var checkName = Identifier.CreateQualifiedIdentifier(name);

            var check  = new PostgreSqlCheckConstraint(checkName, "test_check_definition");
            var result = check.ToString();

            Assert.That(result, Is.EqualTo(expectedResult));
        }
        /// <summary>
        /// Retrieves check constraints defined on a given table.
        /// </summary>
        /// <param name="tableName">A table name.</param>
        /// <param name="cancellationToken">The cancellation token.</param>
        /// <returns>A collection of check constraints.</returns>
        protected override async Task <IReadOnlyCollection <IDatabaseCheckConstraint> > LoadChecksAsync(Identifier tableName, CancellationToken cancellationToken)
        {
            var checks = await DbConnection.QueryAsync <CheckConstraintData>(
                ChecksQuery,
                new { SchemaName = tableName.Schema, TableName = tableName.LocalName },
                cancellationToken
                ).ConfigureAwait(false);

            if (checks.Empty())
            {
                return(Array.Empty <IDatabaseCheckConstraint>());
            }

            const string checkPrefix = "CHECK (";
            const string checkSuffix = ")";
            var          result      = new List <IDatabaseCheckConstraint>();

            foreach (var checkRow in checks)
            {
                var definition = checkRow.Definition;
                if (definition.IsNullOrWhiteSpace())
                {
                    continue;
                }

                if (definition.StartsWith(checkPrefix, StringComparison.OrdinalIgnoreCase))
                {
                    definition = definition.Substring(checkPrefix.Length);
                }
                if (definition.EndsWith(checkSuffix, StringComparison.Ordinal) && definition.Length > 0)
                {
                    definition = definition.Substring(0, definition.Length - checkSuffix.Length);
                }

                var constraintName = Identifier.CreateQualifiedIdentifier(checkRow.ConstraintName);

                var check = new PostgreSqlCheckConstraint(constraintName, definition);
                result.Add(check);
            }

            return(result);
        }
Esempio n. 5
0
        public static void IsEnabled_PropertyGet_ReturnsTrue()
        {
            var check = new PostgreSqlCheckConstraint("test_check", "test_check_definition");

            Assert.That(check.IsEnabled, Is.True);
        }