コード例 #1
0
        public static void Ctor_GivenNullColumnSet_ThrowsArgumentNullException()
        {
            Identifier indexName = "test_index";
            const bool isUnique  = true;
            const OracleIndexProperties properties = OracleIndexProperties.None;

            Assert.That(() => new OracleDatabaseIndex(indexName, isUnique, null, properties), Throws.ArgumentNullException);
        }
コード例 #2
0
        public static void Ctor_GivenColumnSetContainingNullColumn_ThrowsArgumentNullException()
        {
            Identifier indexName = "test_index";
            const bool isUnique  = true;
            var        columns   = new IDatabaseIndexColumn[] { null };
            const OracleIndexProperties properties = OracleIndexProperties.None;

            Assert.That(() => new OracleDatabaseIndex(indexName, isUnique, columns, properties), Throws.ArgumentNullException);
        }
コード例 #3
0
        public static void Ctor_GivenNullName_ThrowsArgumentNullException()
        {
            const bool isUnique = true;
            var        column   = Mock.Of <IDatabaseIndexColumn>();
            var        columns  = new[] { column };
            const OracleIndexProperties properties = OracleIndexProperties.None;

            Assert.That(() => new OracleDatabaseIndex(null, isUnique, columns, properties), Throws.ArgumentNullException);
        }
コード例 #4
0
        public static void Ctor_GivenInvalidProperties_ThrowsArgumentException()
        {
            Identifier indexName = "test_index";
            const bool isUnique  = true;
            var        column    = Mock.Of <IDatabaseIndexColumn>();
            var        columns   = new[] { column };
            const OracleIndexProperties properties = (OracleIndexProperties)(-1);

            Assert.That(() => new OracleDatabaseIndex(indexName, isUnique, columns, properties), Throws.ArgumentException);
        }
コード例 #5
0
        public static void IsUnique_GivenFalseCtorArgAndPropertyGet_EqualsCtorArg()
        {
            Identifier indexName = "test_index";
            const bool isUnique  = false;
            var        column    = Mock.Of <IDatabaseIndexColumn>();
            var        columns   = new[] { column };
            const OracleIndexProperties properties = OracleIndexProperties.None;

            var index = new OracleDatabaseIndex(indexName, isUnique, columns, properties);

            Assert.That(index.IsUnique, Is.EqualTo(isUnique));
        }
コード例 #6
0
        public static void IsEnabled_PropertyGet_ReturnsTrue()
        {
            Identifier indexName = "test_index";
            const bool isUnique  = true;
            var        column    = Mock.Of <IDatabaseIndexColumn>();
            var        columns   = new[] { column };
            const OracleIndexProperties properties = OracleIndexProperties.None;

            var index = new OracleDatabaseIndex(indexName, isUnique, columns, properties);

            Assert.That(index.IsEnabled, Is.True);
        }
コード例 #7
0
        public static void GeneratedByConstraint_GivenPropertiesWithoutUniqueAndWithoutCreatedByConstraintPropertyGet_ReturnsFalse()
        {
            Identifier indexName = "test_index";
            const bool isUnique  = true;
            var        column    = Mock.Of <IDatabaseIndexColumn>();
            var        columns   = new[] { column };
            const OracleIndexProperties properties = OracleIndexProperties.Partitioned | OracleIndexProperties.Compressed;

            var index = new OracleDatabaseIndex(indexName, isUnique, columns, properties);

            Assert.That(index.GeneratedByConstraint, Is.False);
        }
コード例 #8
0
        /// <summary>
        /// Initializes a new instance of the <see cref="OracleDatabaseIndex"/> class.
        /// </summary>
        /// <param name="name">An index name.</param>
        /// <param name="isUnique">Determines whether the index is unique, if <see langword="true"/>, the index is unique.</param>
        /// <param name="columns">The columns.</param>
        /// <param name="properties">A set of flags determining properties of the given index.</param>
        /// <exception cref="ArgumentNullException"><paramref name="name"/> is <c>null</c>. Alternatively if <paramref name="columns"/> is <c>null</c>, empty or has a <c>null</c> value.</exception>
        /// <exception cref="ArgumentException"><paramref name="properties"/> is an invalid enum value.</exception>
        public OracleDatabaseIndex(Identifier name, bool isUnique, IReadOnlyCollection <IDatabaseIndexColumn> columns, OracleIndexProperties properties)
        {
            if (name == null)
            {
                throw new ArgumentNullException(nameof(name));
            }
            if (columns == null || columns.Empty() || columns.AnyNull())
            {
                throw new ArgumentNullException(nameof(columns));
            }
            if (!properties.IsValid())
            {
                throw new ArgumentException($"The { nameof(OracleIndexProperties) } provided must be a valid enum.", nameof(properties));
            }

            Name     = name.LocalName;
            IsUnique = isUnique;
            Columns  = columns;

            GeneratedByConstraint = (properties & ConstraintGeneratedProps) == ConstraintGeneratedProps;
        }