Exemple #1
0
        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);
        }
Exemple #2
0
 public SqlTextTypeValueAnnotationReader(SqlTextScriptReader sqlTextScriptReader)
 {
     this.textScriptReader             = sqlTextScriptReader;
     this.textAnnotationParser         = new SqlTextAnnotationsParser();
     this.multipleAnnotationsSplitter  = new SqlMultipleAnnotationsSplitter();
     this.typeValueAnnotationsSplitter = new SqlTypeValueAnnotationsSplitter();
 }
Exemple #3
0
        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);
        }
Exemple #4
0
        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);
        }
Exemple #5
0
        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);
        }
Exemple #6
0
        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);
        }
Exemple #7
0
        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);
        }
Exemple #8
0
        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);
        }
Exemple #9
0
        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);
        }
Exemple #10
0
        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);
        }
Exemple #11
0
        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);
        }