public void should_add_table_indexes() { var tableName = "Temp" + Guid.NewGuid().ToString("N"); GribbleDatabase.CreateTable(tableName, new Column("Id", typeof(int), isIdentity: true, key: Column.KeyType.ClusteredPrimaryKey), new Column("Created", typeof(DateTime), isNullable: false, isAutoGenerated: true)); GribbleDatabase.AddNonClusteredIndex(tableName, new Index.Column("Id"), new Index.Column("Created")); GribbleDatabase.AddNonClusteredIndexes(tableName, new Index.ColumnSet { "Id", "Created" }, new Index.ColumnSet { "Created" }); var indexes = GribbleDatabase.GetIndexes(tableName).ToList(); indexes.Count.ShouldEqual(3); var index = indexes[2]; index.Clustered.ShouldBeTrue(); index.Columns.Count().ShouldEqual(1); index.Columns.First().Name.ShouldEqual("Id"); index.Columns.First().Descending.ShouldBeFalse(); index.Name.ShouldStartWith("PK_"); index.Name.ShouldContain("_Id"); index.PrimaryKey.ShouldBeTrue(); index.Unique.ShouldBeTrue(); index = indexes[1]; index.Clustered.ShouldBeFalse(); index.Columns.Count().ShouldEqual(2); index.Columns.First().Name.ShouldEqual("Id"); index.Columns.First().Descending.ShouldBeFalse(); index.Columns.Last().Name.ShouldEqual("Created"); index.Columns.Last().Descending.ShouldBeFalse(); index.Name.ShouldStartWith("IX_"); index.Name.ShouldContain("_Id_Created"); index.PrimaryKey.ShouldBeFalse(); index.Unique.ShouldBeFalse(); index = indexes[0]; index.Clustered.ShouldBeFalse(); index.Columns.Count().ShouldEqual(1); index.Columns.First().Name.ShouldEqual("Created"); index.Columns.First().Descending.ShouldBeFalse(); index.Name.ShouldStartWith("IX_"); index.Name.ShouldContain("_Created"); index.PrimaryKey.ShouldBeFalse(); index.Unique.ShouldBeFalse(); }