Ejemplo n.º 1
0
        public void Int_ReturnsIntDataType()
        {
            var dataType = SqlDataType.Int();

            Assert.NotNull(dataType);
            Assert.Equal(SqlDataTypeNames.Int, dataType.Name);
        }
        public virtual async Task CreateTable_CanCreateCompositePrimaryKey()
        {
            var tableName = "CreateTableTest";

            using (new TemporaryTestTable(tableName, DataProvider))
            {
                await DataProvider.ExecuteNonQueryAsync(
                    QueryExpression.CreateTable(
                        tableName,
                        QueryExpression.DefineColumn("AutoId", SqlDataType.Int(), isAutoIncrement: true, isPrimaryKey: true),
                        QueryExpression.DefineColumn("RefId", SqlDataType.Guid(), isNullable: false, isPrimaryKey: true)
                        ));

                Assert.IsTrue(await TableExists(tableName));
            }
        }
        public virtual async Task CreateTable_CanCreateATable()
        {
            var tableName = "CreateTableTest";

            using (new TemporaryTestTable(tableName, DataProvider))
            {
                await DataProvider.ExecuteNonQueryAsync(
                    QueryExpression.CreateTable(
                        tableName,
                        QueryExpression.DefineColumn("Column", SqlDataType.Int())
                        )
                    );

                Assert.IsTrue(await TableExists(tableName));
            }
        }
        public void Build_Query_Creates_Server_Generated_Primary_Key()
        {
            var entityModel = new EntityModel <object>(
                null,
                new Data.Modelling.Analysis.DefaultIntersectionAnalyzer <EntityModel, EntityField, Data.Modelling.TypeModel, Data.Modelling.PropertyInfoField>(),
                new[] {
                new ValueEntityField <int, object>("Id", true, true, new Column("Id", SqlDataType.Int(), false), new TableReference(""), true)
            });
            var createTableBuilder = new CreateTableQueryBuilder <object>(entityModel);
            var query       = createTableBuilder.BuildQuery() as CompositeQueryExpression;
            var createQuery = query.Queries[0] as CreateTableExpression;

            Assert.AreEqual("Id", createQuery.ColumnDefinitions[0].ColumnName);
            Assert.AreEqual(SqlDataType.Int(), createQuery.ColumnDefinitions[0].DataType);
            Assert.AreEqual(false, createQuery.ColumnDefinitions[0].IsNullable);
            Assert.AreEqual(true, createQuery.ColumnDefinitions[0].IsAutoIncrement);
            Assert.AreEqual(true, createQuery.ColumnDefinitions[0].IsPrimaryKey);
        }
        public virtual async Task Crud_InsertFailsWithMissingNonNullable()
        {
            var exceptionCaught = false;

            using (var tempTable = await DataTestHelpers.CreateDataTable(SqlDataType.Int(), DataProvider))
            {
                try
                {
                    await DataProvider.ExecuteNonQueryAsync(
                        QueryExpression.Insert(
                            tempTable.TableName,
                            new[] { "Data" },
                            new object[] { null },
                            new object[] { null }
                            )
                        );
                }
                catch (Exception)
                {
                    exceptionCaught = true;
                }
                Assert.IsTrue(exceptionCaught);
            }
        }
Ejemplo n.º 6
0
 public virtual async Task Data_StoreInt()
 {
     await Data_TestStoreDataType(SqlDataType.Int(), int.MaxValue);
 }
Ejemplo n.º 7
0
            public static async Task <TemporaryTestTable> CreateAutoIncrementTable(IDataProvider dataProvider)
            {
                await dataProvider.ExecuteNonQueryAsync(QueryExpression.CreateTable(
                                                            AUTOINC_TABLE_NAME,
                                                            QueryExpression.DefineColumn("Id", SqlDataType.Int(), isAutoIncrement: true, isPrimaryKey: true),
                                                            QueryExpression.DefineColumn("Data", SqlDataType.Int())
                                                            ));

                return(new TemporaryTestTable(AUTOINC_TABLE_NAME, dataProvider));
            }
Ejemplo n.º 8
0
        public void ExpressionType_ReturnsDataType()
        {
            var constant = SqlDataType.Int();

            Assert.Equal(SqlExpressionType.DataType, constant.ExpressionType);
        }
Ejemplo n.º 9
0
        public static IEnumerable <object[]> EqualsData(bool exactTypeOnly)
        {
            var dataType = new SqlDataType("FOOBAR");

            if (!exactTypeOnly)
            {
                yield return(new object[] { dataType, "FOOBAR", false });
            }
            yield return(new object[] { dataType, (SqlDataType)null, false });

            yield return(new object[] { dataType, new SqlDataType("NONE"), false });

            yield return(new object[] { dataType, new SqlDataType("FOOBAR"), true });

            yield return(new object[] { dataType, dataType, true });

            yield return(new object[] { SqlDataType.Int(), SqlDataType.Int(), true });

            yield return(new object[] { SqlDataType.Int(), SqlDataType.BigInt(), false });

            yield return(new object[] { SqlDataType.VarChar(5), SqlDataType.VarChar(10), false });

            yield return(new object[] { SqlDataType.VarChar(5), SqlDataType.Char(10), false });

            yield return(new object[] { SqlDataType.VarChar(5), SqlDataType.VarChar(5), true });

            yield return(new object[] { SqlDataType.VarChar(5), SqlDataType.Float(5), false });

            yield return(new object[] { SqlDataType.VarChar(5), SqlDataType.Float(6), false });

            yield return(new object[] { SqlDataType.VarChar(5), null, false });

            yield return(new object[] { SqlDataType.Float(), SqlDataType.Float(10), false });

            yield return(new object[] { SqlDataType.Float(), new SqlPrecisionDataType("DOUBLE"), false });

            yield return(new object[] { SqlDataType.Float(), SqlDataType.Float(), true });

            yield return(new object[] { SqlDataType.Float(5), SqlDataType.Float(10), false });

            yield return(new object[] { SqlDataType.Float(5), SqlDataType.Float(5), true });

            yield return(new object[] { SqlDataType.Float(5), SqlDataType.VarChar(42), false });

            yield return(new object[] { SqlDataType.Float(5), null, false });

            yield return(new object[] { SqlDataType.Decimal(), SqlDataType.Decimal(10, 3), false });

            yield return(new object[] { SqlDataType.Decimal(), SqlDataType.Float(10), false });

            yield return(new object[] { SqlDataType.Decimal(), SqlDataType.Decimal(), true });

            yield return(new object[] { SqlDataType.Decimal(5, 3), SqlDataType.Decimal(10, 3), false });

            yield return(new object[] { SqlDataType.Decimal(5, 3), SqlDataType.Decimal(5, 3), true });

            yield return(new object[] { SqlDataType.Decimal(5, 3), SqlDataType.VarChar(42), false });

            yield return(new object[] { SqlDataType.Decimal(5, 3), SqlDataType.Decimal(5, 4), false });

            yield return(new object[] { SqlDataType.Decimal(5, 3), null, false });


            var self = (SqlDataType)SqlDataType.VarChar(5);

            yield return(new object[] { self, self, true });

            self = SqlDataType.Float(5);
            yield return(new object[] { self, self, true });

            self = SqlDataType.Decimal(10, 3);
            yield return(new object[] { self, self, true });
        }
        public void Build_Query_Creates_Index()
        {
            var field       = new ValueEntityField <int, object>("Field", true, true, new Column("Field", SqlDataType.Int(), false), new TableReference(""), false);
            var index       = new Index("TestIndex", false, new[] { field });
            var entityModel = new EntityModel <object>(
                null,
                new Data.Modelling.Analysis.DefaultIntersectionAnalyzer <EntityModel, EntityField, Data.Modelling.TypeModel, Data.Modelling.PropertyInfoField>(),
                new[] { field }, indexes: new[] { index });
            var createTableBuilder = new CreateTableQueryBuilder <object>(entityModel);
            var query = createTableBuilder.BuildQuery() as CompositeQueryExpression;

            var indexExpression = query.Queries[1] as CreateTableIndexExpression;

            Assert.AreEqual("Object", indexExpression.Table.TableName);
            Assert.AreEqual("Field", indexExpression.Columns[0].ColumnName);
            Assert.IsFalse(indexExpression.UniqueConstraint);
        }
        public void Build_Query_Returns_Composite_Create_Query()
        {
            var entityModel = new EntityModel <object>(
                null,
                new Data.Modelling.Analysis.DefaultIntersectionAnalyzer <EntityModel, EntityField, Data.Modelling.TypeModel, Data.Modelling.PropertyInfoField>(),
                new[] {
                new ValueEntityField <int, object>("Field", true, true, new Column("Field", SqlDataType.Int(), false), new TableReference(""), false)
            });
            var createTableBuilder = new CreateTableQueryBuilder <object>(entityModel);
            var query = createTableBuilder.BuildQuery();

            Assert.IsInstanceOfType(query, typeof(CompositeQueryExpression));
        }
Ejemplo n.º 12
0
        public void ExpressionType_ReturnsCast()
        {
            var cast = new SqlCast(42, SqlDataType.Int());

            Assert.Equal(SqlExpressionType.Cast, cast.ExpressionType);
        }