Exemplo n.º 1
0
        public void Should_be_able_to_rename_a_mapped_column()
        {
            var column1Guid = new MappedColumn <string>("column-1", DbType.Guid);
            var column2Guid = column1Guid.Rename("column-2");

            Assert.AreEqual("column-1", column1Guid.ColumnName);
            Assert.AreEqual(DbType.Guid, column1Guid.DbType);
            Assert.AreEqual("column-2", column2Guid.ColumnName);
            Assert.AreEqual(DbType.Guid, column2Guid.DbType);

            var column1String = new MappedColumn <string>("column-1", DbType.AnsiString, 65);
            var column2String = column1String.Rename("column-2");

            Assert.AreEqual("column-1", column1String.ColumnName);
            Assert.AreEqual(DbType.AnsiString, column1String.DbType);
            Assert.AreEqual(65, column1String.Size);
            Assert.AreEqual("column-2", column2String.ColumnName);
            Assert.AreEqual(DbType.AnsiString, column2String.DbType);
            Assert.AreEqual(65, column2String.Size);

            var column1Double = new MappedColumn <string>("column-1", DbType.Double, 10, 2);
            var column2Double = column1Double.Rename("column-2");

            Assert.AreEqual("column-1", column1Double.ColumnName);
            Assert.AreEqual(DbType.Double, column1Double.DbType);
            Assert.AreEqual((byte)10, column1Double.Precision);
            Assert.AreEqual((byte)2, column1Double.Scale);
            Assert.AreEqual("column-2", column2Double.ColumnName);
            Assert.AreEqual(DbType.Double, column2Double.DbType);
            Assert.AreEqual((byte)10, column2Double.Precision);
            Assert.AreEqual((byte)2, column2Double.Scale);
        }
 public ContainsTableProvider(FullTextIndexInfo index, Func <ParameterContext, string> searchCriteria, string rankColumnName, IList <ColumnInfo> targetColumns, Func <ParameterContext, int> topNByRank, bool fullFeatured)
     : base(ProviderType.ContainsTable)
 {
     SearchCriteria = searchCriteria;
     FullFeatured   = fullFeatured;
     PrimaryIndex   = new IndexInfoRef(index.PrimaryIndex);
     TargetColumns  = new ReadOnlyList <FullTextColumnInfo>(targetColumns.Select(tc => index.Columns.First(c => c.Column == tc)).ToList());
     TopN           = topNByRank;
     if (FullFeatured)
     {
         var primaryIndexRecordsetHeader =
             index.PrimaryIndex.ReflectedType.Indexes.PrimaryIndex.GetRecordSetHeader();
         var rankColumn = new MappedColumn(rankColumnName, primaryIndexRecordsetHeader.Length, WellKnownTypes.Double);
         indexHeader = primaryIndexRecordsetHeader.Add(rankColumn);
     }
     else
     {
         var primaryIndexKeyColumns = index.PrimaryIndex.KeyColumns;
         if (primaryIndexKeyColumns.Count != 1)
         {
             throw new InvalidOperationException(Strings.ExOnlySingleColumnKeySupported);
         }
         var fieldTypes = primaryIndexKeyColumns
                          .Select(columnInfo => columnInfo.Key.ValueType)
                          .Append(WellKnownTypes.Double)
                          .ToArray(primaryIndexKeyColumns.Count + 1);
         var tupleDescriptor = TupleDescriptor.Create(fieldTypes);
         var columns         = primaryIndexKeyColumns
                               .Select((c, i) => (Column) new MappedColumn("KEY", i, c.Key.ValueType))
                               .Append(new MappedColumn("RANK", tupleDescriptor.Count, WellKnownTypes.Double));
         indexHeader = new RecordSetHeader(tupleDescriptor, columns);
     }
     Initialize();
 }
Exemplo n.º 3
0
        public void Should_be_able_prepare_a_query()
        {
            const string sql = "select @Id";

            var guid = Guid.NewGuid();
            var mc = new MappedColumn<Guid>("Id", DbType.Guid);
            var query = new RawQuery(sql).AddParameterValue(mc, guid);
            var dataParameterCollection = new Mock<IDataParameterCollection>();
            var dataParameterFactory = new Mock<IDbDataParameterFactory>();

            dataParameterFactory.Setup(m => m.Create("@Id", DbType.Guid, guid));

            var dataSource = new DataSource("data-source", dataParameterFactory.Object);

            var command = new Mock<IDbCommand>();

            dataParameterCollection.Setup(m => m.Add(It.IsAny<IDbDataParameter>())).Verifiable();

            command.SetupGet(m => m.Parameters).Returns(dataParameterCollection.Object);
            command.SetupSet(m => m.CommandText = sql).Verifiable();
            command.SetupSet(m => m.CommandType = CommandType.Text).Verifiable();

            query.Prepare(dataSource, command.Object);

            command.VerifyAll();
            dataParameterFactory.VerifyAll();
        }
Exemplo n.º 4
0
        public void Should_be_able_to_create_mapped_columns()
        {
            const string columnName = "name";

            var mcGuid = new MappedColumn<Guid>(columnName, DbType.Guid);

            Assert.AreEqual(columnName, mcGuid.ColumnName);
            Assert.AreEqual(DbType.Guid, mcGuid.DbType);
            Assert.IsNull(mcGuid.Size);
            Assert.IsNull(mcGuid.Precision);
            Assert.IsNull(mcGuid.Scale);

            var mcString = new MappedColumn<string>(columnName, DbType.AnsiString, 65);

            Assert.AreEqual(columnName, mcString.ColumnName);
            Assert.AreEqual(DbType.AnsiString, mcString.DbType);
            Assert.AreEqual(65, mcString.Size);
            Assert.IsNull(mcString.Precision);
            Assert.IsNull(mcString.Scale);

            var mcDouble = new MappedColumn<decimal>(columnName, DbType.Decimal, 10, 2);

            Assert.AreEqual(columnName, mcDouble.ColumnName);
            Assert.AreEqual(DbType.Decimal, mcDouble.DbType);
            Assert.IsNull(mcDouble.Size);
            Assert.AreEqual((byte)10, mcDouble.Precision);
            Assert.AreEqual((byte)2, mcDouble.Scale);
        }
 public FreeTextProvider(FullTextIndexInfo index, Func <string> searchCriteria, string rankColumnName, Func <int> topN, bool fullFeatured)
     : base(ProviderType.FreeText)
 {
     SearchCriteria = searchCriteria;
     FullFeatured   = fullFeatured;
     TopN           = topN;
     PrimaryIndex   = new IndexInfoRef(index.PrimaryIndex);
     if (FullFeatured)
     {
         var primaryIndexRecordsetHeader = index.PrimaryIndex.ReflectedType.Indexes.PrimaryIndex.GetRecordSetHeader();
         var rankColumn = new MappedColumn(rankColumnName, primaryIndexRecordsetHeader.Length, typeof(double));
         indexHeader = primaryIndexRecordsetHeader.Add(rankColumn);
     }
     else
     {
         var primaryIndexKeyColumns = index.PrimaryIndex.KeyColumns;
         if (primaryIndexKeyColumns.Count != 1)
         {
             throw new InvalidOperationException(Strings.ExOnlySingleColumnKeySupported);
         }
         var fieldTypes = primaryIndexKeyColumns
                          .Select(columnInfo => columnInfo.Key.ValueType)
                          .AddOne(typeof(double))
                          .ToArray(primaryIndexKeyColumns.Count + 1);
         var tupleDescriptor = TupleDescriptor.Create(fieldTypes);
         var columns         = primaryIndexKeyColumns
                               .Select((c, i) => (Column) new MappedColumn("KEY", i, c.Key.ValueType))
                               .AddOne(new MappedColumn("RANK", tupleDescriptor.Count, typeof(double)));
         indexHeader = new RecordSetHeader(tupleDescriptor, columns);
     }
     Initialize();
 }
Exemplo n.º 6
0
        public void Should_be_able_to_create_mapped_columns()
        {
            const string columnName = "name";

            var mcGuid = new MappedColumn <Guid>(columnName, DbType.Guid);

            Assert.AreEqual(columnName, mcGuid.ColumnName);
            Assert.AreEqual(DbType.Guid, mcGuid.DbType);
            Assert.IsNull(mcGuid.Size);
            Assert.IsNull(mcGuid.Precision);
            Assert.IsNull(mcGuid.Scale);

            var mcString = new MappedColumn <string>(columnName, DbType.AnsiString, 65);

            Assert.AreEqual(columnName, mcString.ColumnName);
            Assert.AreEqual(DbType.AnsiString, mcString.DbType);
            Assert.AreEqual(65, mcString.Size);
            Assert.IsNull(mcString.Precision);
            Assert.IsNull(mcString.Scale);

            var mcDouble = new MappedColumn <decimal>(columnName, DbType.Decimal, 10, 2);

            Assert.AreEqual(columnName, mcDouble.ColumnName);
            Assert.AreEqual(DbType.Decimal, mcDouble.DbType);
            Assert.IsNull(mcDouble.Size);
            Assert.AreEqual((byte)10, mcDouble.Precision);
            Assert.AreEqual((byte)2, mcDouble.Scale);
        }
Exemplo n.º 7
0
        public void Should_be_able_to_implicitly_convert_to_string()
        {
            var mc = new MappedColumn <string>("column-1", DbType.AnsiString, 65);

            string name = mc;

            Assert.AreEqual("column-1", name);
        }
Exemplo n.º 8
0
        public void The_Change_Is_Reflected_In_Its_MappedColumns()
        {
            var table1 = new Table("Table1");

            table1.AddColumn(new Column("Column1"));
            table1.AddColumn(new Column("Column2"));
            var table2 = new Table("Table2");

            table2.AddColumn(new Column("Column1"));
            table2.AddColumn(new Column("Column2"));

            var key1 = new Key("PrimaryKey")
            {
                Keytype = DatabaseKeyType.Primary
            };

            table1.AddKey(key1);
            key1.AddColumn("Column1");
            var key2 = new Key("ForeignKey")
            {
                Keytype = DatabaseKeyType.Foreign
            };

            table2.AddKey(key2);
            key2.AddColumn("Column1");

            var relationship = new RelationshipImpl();

            relationship.PrimaryTable = table1;
            relationship.ForeignTable = table2;
            relationship.PrimaryKey   = key1;
            relationship.ForeignKey   = key2;

            Assert.That(relationship.MappedColumns.Count(), Is.EqualTo(1));

            MappedColumn mappedColumn = relationship.MappedColumns.ElementAt(0);

            Assert.That(mappedColumn.Source, Is.SameAs(table1.Columns[0]));
            Assert.That(mappedColumn.Target, Is.SameAs(table2.Columns[0]));

            key1.AddColumn("Column2");
            key2.AddColumn("Column2");

            Assert.That(relationship.MappedColumns.Count(), Is.EqualTo(2), "The new column was not added.");

            mappedColumn = relationship.MappedColumns.ElementAt(0);
            Assert.That(mappedColumn.Source, Is.SameAs(table1.Columns[0]), "The source column is wrong on item 0");
            Assert.That(mappedColumn.Target, Is.SameAs(table2.Columns[0]), "The target column is wrong on item 0");

            mappedColumn = relationship.MappedColumns.ElementAt(1);

            Assert.That(mappedColumn.Source, Is.SameAs(table1.Columns[1]), "The source column is wrong on item 1");
            Assert.That(mappedColumn.Target, Is.SameAs(table2.Columns[1]), "The target column is wrong on item 1");
        }
Exemplo n.º 9
0
 public override string ToString()
 {
     return(string.Format("{0} {1} ({2}, {3}) [original: {4} ({5}, {6})]",
                          Message,
                          MappedFilePath ?? "",
                          MappedLine.ToString(),
                          MappedColumn.ToString(),
                          OriginalFilePath ?? "",
                          OriginalLine.ToString(),
                          OriginalColumn.ToString()));
 }
Exemplo n.º 10
0
 public override string ToString()
 {
     return(string.Format("{0} {1} {2} {3} {4} {5} ({5}, {6}) [original: {7} ({8}, {9})]",
                          Id,
                          Message,
                          Severity.ToString(),
                          ProjectId,
                          MappedFilePath ?? "",
                          MappedLine.ToString(),
                          MappedColumn.ToString(),
                          OriginalFilePath ?? "",
                          OriginalLine.ToString(),
                          OriginalColumn.ToString()));
 }
Exemplo n.º 11
0
        public void Should_be_able_to_determine_if_column_value_is_null()
        {
            var table = new DataTable();

            table.Columns.Add("column-1", typeof(string));

            var row = table.Rows.Add(DBNull.Value);

            var mc = new MappedColumn <string>("column-1", DbType.AnsiString, 65);

            Assert.IsTrue(mc.IsNullFor(row));

            row["column-1"] = "value-1";

            Assert.IsFalse(mc.IsNullFor(row));
        }
Exemplo n.º 12
0
        public void Should_be_able_to_map_from_a_data_record()
        {
            var record = new SqlDataRecord(new[] { new SqlMetaData("column-1", SqlDbType.VarChar, 65) });

            record.SetSqlString(0, new SqlString(null));

            var column1 = new MappedColumn <string>("column-1", DbType.AnsiString, 65);
            var column2 = new MappedColumn <string>("column-2", DbType.AnsiString, 65);

            Assert.AreEqual(default(string), column1.MapFrom(record));
            Assert.AreEqual(default(string), column2.MapFrom(record));

            record.SetSqlString(0, new SqlString("value-1"));

            Assert.AreEqual("value-1", column1.MapFrom(record));
            Assert.AreEqual(default(string), column2.MapFrom(record));
        }
Exemplo n.º 13
0
        public void Should_be_able_to_map_from_a_data_row()
        {
            var table = new DataTable();

            table.Columns.Add("column-1", typeof(string));

            var row = table.Rows.Add(DBNull.Value);

            var mc      = new MappedColumn <string>("column-1", DbType.AnsiString, 65);
            var missing = new MappedColumn <string>("missing", DbType.AnsiString, 65);

            Assert.AreEqual(default(string), mc.MapFrom(row));
            Assert.AreEqual(default(string), missing.MapFrom(row));
            Assert.AreEqual(DBNull.Value, mc.RetrieveRawValueFrom(row));

            row["column-1"] = "value-1";

            Assert.AreEqual("value-1", mc.MapFrom(row));
            Assert.AreEqual(default(string), missing.MapFrom(row));
            Assert.AreEqual("value-1", mc.RetrieveRawValueFrom(row));
        }
Exemplo n.º 14
0
        public void Should_be_able_to_create_data_parameters()
        {
            const string columnName = "name";

            var parameter = new Mock<IDbDataParameter>();

            var mcGuid = new MappedColumn<Guid>(columnName, DbType.Guid);

            var guid = Guid.NewGuid();

            var factory = new Mock<IDbDataParameterFactory>();

            factory.Setup(m => m.Create(It.IsAny<string>(), It.IsAny<DbType>(), guid)).Returns(parameter.Object);

            var result = mcGuid.CreateDataParameter(factory.Object, guid);

            factory.VerifyAll();
            Assert.AreSame(result, parameter.Object);

            var mcString = new MappedColumn<string>(columnName, DbType.AnsiString, 65);

            factory = new Mock<IDbDataParameterFactory>();
            factory.Setup(m => m.Create(It.IsAny<string>(), It.IsAny<DbType>(), 65, "a-string")).Returns(parameter.Object);

            result = mcString.CreateDataParameter(factory.Object, "a-string");

            factory.VerifyAll();
            Assert.AreSame(result, parameter.Object);

            var mcDouble = new MappedColumn<decimal>(columnName, DbType.Decimal, 10, 2);

            factory = new Mock<IDbDataParameterFactory>();
            factory.Setup(m => m.Create(It.IsAny<string>(), It.IsAny<DbType>(), 10, 2, 150.15d)).Returns(parameter.Object);

            result = mcDouble.CreateDataParameter(factory.Object, 150.15d);

            factory.VerifyAll();
            Assert.AreSame(result, parameter.Object);
        }
Exemplo n.º 15
0
        public void Should_be_able_prepare_a_query()
        {
            const string sql = "uspDoSomething";

            var guid  = Guid.NewGuid();
            var mc    = new MappedColumn <Guid>("Id", DbType.Guid);
            var query = new ProcedureQuery(sql).AddParameterValue(mc, guid);
            var dataParameterCollection = new Mock <IDataParameterCollection>();

            var command = new Mock <IDbCommand>();

            dataParameterCollection.Setup(m => m.Add(It.IsAny <IDbDataParameter>())).Verifiable();

            command.SetupGet(m => m.Parameters).Returns(dataParameterCollection.Object);
            command.SetupSet(m => m.CommandText = sql).Verifiable();
            command.SetupSet(m => m.CommandType = CommandType.StoredProcedure).Verifiable();
            command.Setup(m => m.CreateParameter()).Returns(new SqlParameter());

            query.Prepare(command.Object);

            command.VerifyAll();
        }
Exemplo n.º 16
0
        public void Should_be_able_to_create_data_parameters()
        {
            const string columnName = "name";

            var parameter = new Mock <IDbDataParameter>();

            var mcGuid = new MappedColumn <Guid>(columnName, DbType.Guid);

            var guid = Guid.NewGuid();

            var factory = new Mock <IDbCommand>();

            factory.Setup(m => m.CreateParameter()).Returns(parameter.Object);

            var result = mcGuid.CreateDataParameter(factory.Object, guid);

            factory.VerifyAll();
            Assert.AreSame(result, parameter.Object);

            var mcString = new MappedColumn <string>(columnName, DbType.AnsiString, 65);

            factory = new Mock <IDbCommand>();
            factory.Setup(m => m.CreateParameter()).Returns(parameter.Object);

            result = mcString.CreateDataParameter(factory.Object, "a-string");

            factory.VerifyAll();
            Assert.AreSame(result, parameter.Object);

            var mcDouble = new MappedColumn <decimal>(columnName, DbType.Decimal, 10, 2);

            factory = new Mock <IDbCommand>();
            factory.Setup(m => m.CreateParameter()).Returns(parameter.Object);

            result = mcDouble.CreateDataParameter(factory.Object, 150.15d);

            factory.VerifyAll();
            Assert.AreSame(result, parameter.Object);
        }
Exemplo n.º 17
0
        internal Select AddColumn(MappedColumn mappedColumn)
        {
            _mappedColumns.Add(mappedColumn);

            return this;
        }
Exemplo n.º 18
0
        public void Should_be_able_to_implicitly_convert_to_string()
        {
            var mc = new MappedColumn<string>("column-1", DbType.AnsiString, 65);

            string name = mc;

            Assert.AreEqual("column-1", name);
        }
Exemplo n.º 19
0
        public void Should_be_able_to_map_from_a_data_record()
        {
            var record = new SqlDataRecord(new[] { new SqlMetaData("column-1", SqlDbType.VarChar, 65) });

            record.SetSqlString(0, new SqlString(null));

            var column1 = new MappedColumn<string>("column-1", DbType.AnsiString, 65);
            var column2 = new MappedColumn<string>("column-2", DbType.AnsiString, 65);

            Assert.AreEqual(default(string), column1.MapFrom(record));
            Assert.AreEqual(default(string), column2.MapFrom(record));

            record.SetSqlString(0, new SqlString("value-1"));

            Assert.AreEqual("value-1", column1.MapFrom(record));
            Assert.AreEqual(default(string), column2.MapFrom(record));
        }
Exemplo n.º 20
0
 public override string ToString()
 => $"{Priority} {Message} {MappedFilePath ?? ""} ({MappedLine.ToString()}, {MappedColumn.ToString()}) [original: {OriginalFilePath ?? ""} ({OriginalLine.ToString()}, {OriginalColumn.ToString()})";
Exemplo n.º 21
0
        public void Should_be_able_to_map_from_a_data_row()
        {
            var table = new DataTable();

            table.Columns.Add("column-1", typeof(string));

            var row = table.Rows.Add(DBNull.Value);

            var mc = new MappedColumn<string>("column-1", DbType.AnsiString, 65);
            var missing = new MappedColumn<string>("missing", DbType.AnsiString, 65);

            Assert.AreEqual(default(string), mc.MapFrom(row));
            Assert.AreEqual(default(string), missing.MapFrom(row));
            Assert.AreEqual(DBNull.Value, mc.RetrieveRawValueFrom(row));

            row["column-1"] = "value-1";

            Assert.AreEqual("value-1", mc.MapFrom(row));
            Assert.AreEqual(default(string), missing.MapFrom(row));
            Assert.AreEqual("value-1", mc.RetrieveRawValueFrom(row));
        }
Exemplo n.º 22
0
        public void Should_be_able_to_rename_a_mapped_column()
        {
            var column1Guid = new MappedColumn<string>("column-1", DbType.Guid);
            var column2Guid = column1Guid.Rename("column-2");

            Assert.AreEqual("column-1", column1Guid.ColumnName);
            Assert.AreEqual(DbType.Guid, column1Guid.DbType);
            Assert.AreEqual("column-2", column2Guid.ColumnName);
            Assert.AreEqual(DbType.Guid, column2Guid.DbType);

            var column1String = new MappedColumn<string>("column-1", DbType.AnsiString, 65);
            var column2String = column1String.Rename("column-2");

            Assert.AreEqual("column-1", column1String.ColumnName);
            Assert.AreEqual(DbType.AnsiString, column1String.DbType);
            Assert.AreEqual(65, column1String.Size);
            Assert.AreEqual("column-2", column2String.ColumnName);
            Assert.AreEqual(DbType.AnsiString, column2String.DbType);
            Assert.AreEqual(65, column2String.Size);

            var column1Double = new MappedColumn<string>("column-1", DbType.Double, 10, 2);
            var column2Double = column1Double.Rename("column-2");

            Assert.AreEqual("column-1", column1Double.ColumnName);
            Assert.AreEqual(DbType.Double, column1Double.DbType);
            Assert.AreEqual((byte)10, column1Double.Precision);
            Assert.AreEqual((byte)2, column1Double.Scale);
            Assert.AreEqual("column-2", column2Double.ColumnName);
            Assert.AreEqual(DbType.Double, column2Double.DbType);
            Assert.AreEqual((byte)10, column2Double.Precision);
            Assert.AreEqual((byte)2, column2Double.Scale);
        }
Exemplo n.º 23
0
        public void Should_be_able_to_determine_if_column_value_is_null()
        {
            var table = new DataTable();

            table.Columns.Add("column-1", typeof(string));

            var row = table.Rows.Add(DBNull.Value);

            var mc = new MappedColumn<string>("column-1", DbType.AnsiString, 65);

            Assert.IsTrue(mc.IsNullFor(row));

            row["column-1"] = "value-1";

            Assert.IsFalse(mc.IsNullFor(row));
        }