Exemplo n.º 1
0
        public void Paginates()
        {
            var details = new PgSqlDetails();

            Assert.Equal("LIMIT 10 OFFSET 0", details.Paginate(1));
            Assert.Equal("LIMIT 10 OFFSET 10", details.Paginate(2));
            Assert.Equal("LIMIT 15 OFFSET 30", details.Paginate(3, 15));
            Assert.Equal("LIMIT 10 OFFSET 0", details.Paginate(-1));
        }
Exemplo n.º 2
0
        public DatabaseStorageTests_PgSql(PgSqlConnectionFixture fixture)
        {
            _fixture = fixture;
            _fixture.SetUpDatabase();

            var details = new PgSqlDetails();

            _db      = new DatabaseAccess(_fixture.Connection, details);
            _keys    = new KeyUtil();
            _storage = new DatabaseStorage(details, _db, _keys);
        }
Exemplo n.º 3
0
        public void Schema()
        {
            var details = new PgSqlDetails();

            _db.Exec(@"create table foo(
                id  serial,

                b   boolean,
                i   Integer,
                l   BigInt,
                d   DOUBLE precision,
                n   Numeric,
                t   text,
                ts  timestamp,                
                tz  timestamptz,
                g   uuid,
                bl  bytea,

                b2  BOOL,
                i2  INT4,
                l2  INT8,
                d2  FLOAT8,
                ts2 timestamp without time zone,
                tz2 timestamp with time zone,

                x1  integer not null,
                x2  integer default 123,
                x3  numeric(10),
                x4  numeric(10, 5),

                x5  json,
                x6  varchar(255)
            )");

            var cols = _storage.GetSchema()["foo"];

            Assert.False(cols.ContainsKey("id"));

            Assert.Equal(PgSqlDetails.RANK_BOOLEAN, cols["b"]);
            Assert.Equal("BOOLEAN", details.GetSqlTypeFromRank(cols["b"]));
            Assert.Equal(PgSqlDetails.RANK_BOOLEAN, cols["b2"]);
            Assert.Equal("BOOLEAN", details.GetSqlTypeFromRank(cols["b2"]));

            Assert.Equal(PgSqlDetails.RANK_INT32, cols["i"]);
            Assert.Equal("INTEGER", details.GetSqlTypeFromRank(cols["i"]));
            Assert.Equal(PgSqlDetails.RANK_INT32, cols["i2"]);
            Assert.Equal("INTEGER", details.GetSqlTypeFromRank(cols["i2"]));

            Assert.Equal(PgSqlDetails.RANK_INT64, cols["l"]);
            Assert.Equal("BIGINT", details.GetSqlTypeFromRank(cols["l"]));
            Assert.Equal(PgSqlDetails.RANK_INT64, cols["l2"]);
            Assert.Equal("BIGINT", details.GetSqlTypeFromRank(cols["l2"]));

            Assert.Equal(PgSqlDetails.RANK_DOUBLE, cols["d"]);
            Assert.Equal("DOUBLE PRECISION", details.GetSqlTypeFromRank(cols["d"]));
            Assert.Equal(PgSqlDetails.RANK_DOUBLE, cols["d2"]);
            Assert.Equal("DOUBLE PRECISION", details.GetSqlTypeFromRank(cols["d2"]));

            Assert.Equal(PgSqlDetails.RANK_NUMERIC, cols["n"]);
            Assert.Equal("NUMERIC", details.GetSqlTypeFromRank(cols["n"]));

            Assert.Equal(PgSqlDetails.RANK_TEXT, cols["t"]);
            Assert.Equal("TEXT", details.GetSqlTypeFromRank(cols["t"]));

            Assert.Equal(PgSqlDetails.RANK_STATIC_DATETIME, cols["ts"]);
            Assert.Equal("TIMESTAMP WITHOUT TIME ZONE", details.GetSqlTypeFromRank(cols["ts"]));
            Assert.Equal(PgSqlDetails.RANK_STATIC_DATETIME, cols["ts2"]);
            Assert.Equal("TIMESTAMP WITHOUT TIME ZONE", details.GetSqlTypeFromRank(cols["ts2"]));

            Assert.Equal(PgSqlDetails.RANK_STATIC_DATETIME_OFFSET, cols["tz"]);
            Assert.Equal("TIMESTAMP WITH TIME ZONE", details.GetSqlTypeFromRank(cols["tz"]));
            Assert.Equal(PgSqlDetails.RANK_STATIC_DATETIME_OFFSET, cols["tz2"]);
            Assert.Equal("TIMESTAMP WITH TIME ZONE", details.GetSqlTypeFromRank(cols["tz2"]));

            Assert.Equal(PgSqlDetails.RANK_STATIC_GUID, cols["g"]);
            Assert.Equal("UUID", details.GetSqlTypeFromRank(cols["g"]));

            Assert.Equal(PgSqlDetails.RANK_STATIC_BLOB, cols["bl"]);
            Assert.Equal("BYTEA", details.GetSqlTypeFromRank(cols["bl"]));

            foreach (var i in Enumerable.Range(1, 6))
            {
                Assert.Equal(CommonDatabaseDetails.RANK_CUSTOM, cols["x" + i]);
            }
        }
Exemplo n.º 4
0
        public void NotSupportedSqlRank()
        {
            var details = new PgSqlDetails();

            Assert.Throws <NotSupportedException>(() => details.GetSqlTypeFromRank(9999));
        }