public void ParsesSingleColumnFromTableAnnotationWhenMultipleTablesArePresent(string type, string annotation) { var sqlText = $@" CREATE TABLE Customer{annotation} ( CUSTOMER_ID INT IDENTITY(1,1) PRIMARY KEY, CUSTOMER_NAME {type}{annotation} */ ); CREATE TABLE CustomerAddresses ( CUSTOMER_ADDRESS_ID INT IDENTITY(1,1) PRIMARY KEY, CUSTOMER_ID INT NOT NULL, LINE VARCHAR(100) NOT NULL /* {annotation} */, STATE CHAR(2), COUNTRY CHAR(3), FOREIGN KEY(CUSTOMER_ID) REFERENCES Customer(CUSTOMER_ID) ); CREATE TABLE SpecialCustomer {annotation} ( SPECIAL_CARD_NUMBER CHAR(10) NOT NULL );"; var parser = new SqlTextAnnotationsParser(); var results = parser.ParseTextAnnotations(sqlText); var columnAnnotations = results.ColumnAnnotationResults.Where(a => a.TableName == "Customer"); Assert.Single(columnAnnotations); }
public SqlTextTypeValueAnnotationReader(SqlTextScriptReader sqlTextScriptReader) { this.textScriptReader = sqlTextScriptReader; this.textAnnotationParser = new SqlTextAnnotationsParser(); this.multipleAnnotationsSplitter = new SqlMultipleAnnotationsSplitter(); this.typeValueAnnotationsSplitter = new SqlTypeValueAnnotationsSplitter(); }
public void ParsesSingleTableAnnotation() { var sqlText = @"CREATE TABLE SpecialCustomer /* {extends:Customer} */ ( CUSTOMER_ID INT );" ; var parser = new SqlTextAnnotationsParser(); var results = parser.ParseTextAnnotations(sqlText); Assert.Single(results.TableAnnotationResults); }
public void DoesNotParseInvalidColumnAnnotation(string annotation) { var sqlText = $@"CREATE TABLE Customer( CUSTOMER_ID INT{annotation} );"; var parser = new SqlTextAnnotationsParser(); var results = parser.ParseTextAnnotations(sqlText); Assert.Empty(results.ColumnAnnotationResults); }
public void ParsesSingleColumnAnnotation() { var sqlText = @"CREATE TABLE SpecialCustomer ( CUSTOMER_ID INT /* {trait:means.something} */ );" ; var parser = new SqlTextAnnotationsParser(); var results = parser.ParseTextAnnotations(sqlText); Assert.Single(results.ColumnAnnotationResults); }
public void NotParsesInvalidTableAnnotation(string annotation) { var sqlText = $@"CREATE TABLE SpecialCustomer{annotation}( CUSTOMER_ID INT IDENTITY(1,1) PRIMARY KEY );"; var parser = new SqlTextAnnotationsParser(); var results = parser.ParseTextAnnotations(sqlText); Assert.Empty(results.TableAnnotationResults); }
public void ParsesEmptyAnnotations() { var sqlText = @"CREATE TABLE SpecialCustomer ( CUSTOMER_ID INT );" ; var parser = new SqlTextAnnotationsParser(); var results = parser.ParseTextAnnotations(sqlText); Assert.Empty(results.TableAnnotationResults); Assert.Empty(results.ColumnAnnotationResults); }
public void ParsesSingleColumnAnnotationWhenMultipleColumnsArePresent(string type, string annotation) { var sqlText = $@"CREATE TABLE Customer{annotation}( CUSTOMER_ID INT, CUSTOMER_NAME {type}{annotation}, CUSTOMER_AGE INT );"; var parser = new SqlTextAnnotationsParser(); var results = parser.ParseTextAnnotations(sqlText); Assert.Single(results.ColumnAnnotationResults); }
public void ParsesValidTableAnnotationWhenMissingSemiColon(string annotation, string expectedTextAnnotation) { var sqlText = $@"CREATE TABLE SpecialCustomer{annotation}( CUSTOMER_ID INT )" ; var parser = new SqlTextAnnotationsParser(); var results = parser.ParseTextAnnotations(sqlText); var tableAnnotation = results.TableAnnotationResults.FirstOrDefault(); Assert.NotNull(tableAnnotation); Assert.Equal("SpecialCustomer", tableAnnotation.TableName); Assert.Equal(expectedTextAnnotation, tableAnnotation.Result); }
public void ParsesValidColumnAnnotationWhenMultipleColumnsArePresentInline(string type, string annotation, string expectedTextAnnotation) { var sqlText = $@"CREATE TABLE Customer{annotation}( CUSTOMER_ID INT, CUSTOMER_NAME {type}{annotation}, CUSTOMER_AGE INT );"; var parser = new SqlTextAnnotationsParser(); var results = parser.ParseTextAnnotations(sqlText); var columnAnnotation = results.ColumnAnnotationResults.FirstOrDefault(); Assert.NotNull(columnAnnotation); Assert.Equal("Customer", columnAnnotation.TableName); Assert.Equal("CUSTOMER_NAME", columnAnnotation.ColumnName); Assert.Equal(expectedTextAnnotation, columnAnnotation.Result); }
public void ParsesValidColumnAnnotationWhenMissingSemiColon(string type, string annotation, string expectedTextAnnotation) { var sqlText = $@"CREATE TABLE Customer( CUSTOMER_ID {type}{annotation} )"; var parser = new SqlTextAnnotationsParser(); var results = parser.ParseTextAnnotations(sqlText); var columnAnnotation = results.ColumnAnnotationResults.FirstOrDefault(); Assert.NotNull(columnAnnotation); Assert.Equal("Customer", columnAnnotation.TableName); Assert.Equal("CUSTOMER_ID", columnAnnotation.ColumnName); Assert.Equal(expectedTextAnnotation, columnAnnotation.Result); }