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); }
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); }
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); }
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); }
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)); }
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); }
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); }
/// <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; }