Datei: NDODLL.Tests/NdoDllUnitTests/TransitionTests.cs
Last Commit (0549873)
| 1 | -- File didn't exist -- |
New Commit (e9b343b)
| 1 | using NDO; |
| 2 | using NDO.ProviderFactory; |
| 3 | using NUnit.Framework; |
| 4 | using System; |
| 5 | using System.Linq; |
| 6 | using System.Xml.Linq; |
| 7 | |
| 8 | namespace NdoDllUnitTests |
| 9 | { |
| 10 | ····[TestFixture] |
| 11 | |
| 12 | ····public class TransitionTests |
| 13 | ····{ |
| 14 | ········SchemaTransitionGenerator transitionGenerator; |
| 15 | |
| 16 | ········[SetUp] |
| 17 | ········public void Setup() |
| 18 | ········{ |
| 19 | ············transitionGenerator = new SchemaTransitionGenerator( NDOProviderFactory.Instance, "SqlServer", null ); |
| 20 | ········} |
| 21 | |
| 22 | ········XElement GetSimpleIndex() |
| 23 | ········{ |
| 24 | ············XElement column = new XElement( "Column", new XAttribute( "name", "IndexedColumn" ) ); |
| 25 | ············XElement createIndex = new XElement( "CreateIndex", new XAttribute( "name", "ix_MyTable" ), new XAttribute( "onTable", "MyTable" ), column ); |
| 26 | ············return createIndex; |
| 27 | ········} |
| 28 | |
| 29 | ········[Test] |
| 30 | ········public void CreateSimpleIndex() |
| 31 | ········{ |
| 32 | ············XElement createIndex = GetSimpleIndex(); |
| 33 | ············XElement schemaTransition = new XElement( "NdoSchemaTransition", createIndex ); |
| 34 | |
| 35 | ············var sql = this.transitionGenerator.Generate( schemaTransition ); |
| 36 | ············Assert.That( sql, Is.EqualTo( "CREATE INDEX [ix_MyTable] ON [MyTable] ([IndexedColumn])" ) ); |
| 37 | ········} |
| 38 | |
| 39 | ········[Test] |
| 40 | ········public void CreateIndexWith2Columns() |
| 41 | ········{ |
| 42 | ············XElement createIndex = GetSimpleIndex(); |
| 43 | ············XElement column = new XElement( "Column", new XAttribute( "name", "SecondColumn" ) ); |
| 44 | ············createIndex.Add( column ); |
| 45 | |
| 46 | ············XElement schemaTransition = new XElement( "NdoSchemaTransition", createIndex ); |
| 47 | |
| 48 | ············var sql = this.transitionGenerator.Generate( schemaTransition ); |
| 49 | ············Assert.That( sql, Is.EqualTo( "CREATE INDEX [ix_MyTable] ON [MyTable] ([IndexedColumn], [SecondColumn])" ) ); |
| 50 | ········} |
| 51 | |
| 52 | ········[Test] |
| 53 | ········public void CreateUniqueIndex() |
| 54 | ········{ |
| 55 | ············XElement createIndex = GetSimpleIndex(); |
| 56 | ············createIndex.Add( new XAttribute( "unique", "true" ) ); |
| 57 | ············XElement schemaTransition = new XElement( "NdoSchemaTransition", createIndex ); |
| 58 | |
| 59 | ············var sql = this.transitionGenerator.Generate( schemaTransition ); |
| 60 | ············Assert.That( sql, Is.EqualTo( "CREATE UNIQUE INDEX [ix_MyTable] ON [MyTable] ([IndexedColumn])" ) ); |
| 61 | ········} |
| 62 | |
| 63 | ········[Test] |
| 64 | ········public void CreateUniqueFulltextIndex() |
| 65 | ········{ |
| 66 | ············XElement createIndex = GetSimpleIndex(); |
| 67 | ············createIndex.Add( new XAttribute( "fulltext", "true" ) ); |
| 68 | ············XElement schemaTransition = new XElement( "NdoSchemaTransition", createIndex ); |
| 69 | |
| 70 | ············var sql = this.transitionGenerator.Generate( schemaTransition ); |
| 71 | ············Assert.That( sql, Is.EqualTo( "CREATE FULLTEXT INDEX [ix_MyTable] ON [MyTable] ([IndexedColumn])" ) ); |
| 72 | ········} |
| 73 | |
| 74 | ········[Test] |
| 75 | ········public void AscendingShouldBeIgnored() |
| 76 | ········{ |
| 77 | ············XElement createIndex = GetSimpleIndex(); |
| 78 | ············createIndex.Element( "Column" ).Add( new XAttribute( "desc", "false" ) ); |
| 79 | ············XElement schemaTransition = new XElement( "NdoSchemaTransition", createIndex ); |
| 80 | |
| 81 | ············var sql = this.transitionGenerator.Generate( schemaTransition ); |
| 82 | ············Assert.That( sql, Is.EqualTo( "CREATE INDEX [ix_MyTable] ON [MyTable] ([IndexedColumn])" ) ); |
| 83 | ········} |
| 84 | |
| 85 | ········[Test] |
| 86 | ········public void CreateDescendingColumnIndex() |
| 87 | ········{ |
| 88 | ············XElement createIndex = GetSimpleIndex(); |
| 89 | ············createIndex.Element( "Column" ).Add( new XAttribute( "desc", "true" ) ); |
| 90 | ············XElement schemaTransition = new XElement( "NdoSchemaTransition", createIndex ); |
| 91 | |
| 92 | ············var sql = this.transitionGenerator.Generate( schemaTransition ); |
| 93 | ············Assert.That( sql, Is.EqualTo( "CREATE INDEX [ix_MyTable] ON [MyTable] ([IndexedColumn] DESC)" ) ); |
| 94 | ········} |
| 95 | |
| 96 | ····} |
| 97 | } |
| 98 |