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 |