예제 #1
0
        public async Task All_WhereParams()
        {
            var film    = new Film(ProviderName);
            var allRows = await(await film.AllAsync(new { rental_duration = 5 })).ToListAsync();

            Assert.AreEqual(191, allRows.Count);
        }
예제 #2
0
        public async Task All_WhereClause()
        {
            var film    = new Film(ProviderName);
            var allRows = await(await film.AllAsync(where : "WHERE rental_duration=@0", args: 5)).ToListAsync();

            Assert.AreEqual(191, allRows.Count);
        }
예제 #3
0
        public async Task All_LimitSpecification()
        {
            var film    = new Film(ProviderName);
            var allRows = await(await film.AllAsync(limit: 10)).ToListAsync();

            Assert.AreEqual(10, allRows.Count);
        }
예제 #4
0
        public async Task All_NoParameters()
        {
            var film    = new Film(ProviderName);
            var allRows = await(await film.AllAsync()).ToListAsync();

            Assert.AreEqual(1000, allRows.Count);
        }
예제 #5
0
#pragma warning disable CS1998
        public async Task All_WhereParamsKey_ThrowsInvalidOperationException()
        {
            var ex = Assert.ThrowsAsync <InvalidOperationException>(async() => {
                var film    = new Film(ProviderName);
                var allRows = await(await film.AllAsync(limit: 2, columns: "film_id as FILMID, description, language_id", whereParams: 5)).ToListAsync();
            });

            Assert.AreEqual("whereParams in AllAsync(...) should contain names and values but it contained values only. If you want to get a single item by its primary key use SingleAsync(...) instead.", ex.Message);
        }
예제 #6
0
        public async Task All_WhereParams_Columns_Limit()
        {
            var film    = new Film(ProviderName);
            var allRows = await(await film.AllAsync(limit: 2, columns: "film_id as FILMID, description, language_id", whereParams: new { rental_duration = 5 })).ToListAsync();

            Assert.AreEqual(2, allRows.Count);
            var firstRow = (IDictionary <string, object>)allRows[0];

            Assert.AreEqual(3, firstRow.Count);
            Assert.IsTrue(firstRow.ContainsKey("FILMID"));
            Assert.IsTrue(firstRow.ContainsKey("description"));
            Assert.IsTrue(firstRow.ContainsKey("language_id"));
        }
예제 #7
0
        public async Task All_WhereClause_Columns()
        {
            var film    = new Film(ProviderName);
            var allRows = await(await film.AllAsync(columns: "film_id as FILMID, description, language_id", where : "WHERE rental_duration=@0", args: 5)).ToListAsync();

            Assert.AreEqual(191, allRows.Count);
            var firstRow = (IDictionary <string, object>)allRows[0];

            Assert.AreEqual(3, firstRow.Count);
            Assert.IsTrue(firstRow.ContainsKey("FILMID"));
            Assert.IsTrue(firstRow.ContainsKey("description"));
            Assert.IsTrue(firstRow.ContainsKey("language_id"));
        }
예제 #8
0
        public async Task All_ColumnSpecification()
        {
            // specify columns a different way to cause a cache miss (but this does cache wrt sync version)
            var film    = new Film(ProviderName, columns: "film_id as FILMID, description, language_id");
            var allRows = await(await film.AllAsync()).ToListAsync();

            Assert.AreEqual(1000, allRows.Count);
            var firstRow = (IDictionary <string, object>)allRows[0];

            Assert.AreEqual(3, firstRow.Count);
            Assert.IsTrue(firstRow.ContainsKey("FILMID"));
            Assert.IsTrue(firstRow.ContainsKey("description"));
            Assert.IsTrue(firstRow.ContainsKey("language_id"));
        }
예제 #9
0
        public async Task All_WhereParams_OrderBy()
        {
            var film    = new Film(ProviderName);
            var allRows = await(await film.AllAsync(orderBy: "film_id DESC", whereParams: new { rental_duration = 5 })).ToListAsync();

            Assert.AreEqual(191, allRows.Count);
            int previous = int.MaxValue;

            foreach (var r in allRows)
            {
                int current = r.film_id;
                Assert.IsTrue(current <= previous);
                previous = current;
            }
        }
예제 #10
0
        public async Task All_OrderBySpecification()
        {
            var film    = new Film(ProviderName);
            var allRows = await(await film.AllAsync(orderBy: "rental_duration DESC")).ToListAsync();

            Assert.AreEqual(1000, allRows.Count);
            int previous = int.MaxValue;

            foreach (var r in allRows)
            {
                int current = r.rental_duration;
                Assert.IsTrue(current <= previous);
                previous = current;
            }
        }
예제 #11
0
        public async Task All_NoParameters_Streaming()
        {
            var film    = new Film(ProviderName);
            var allRows = await film.AllAsync();

            var count = 0;

#if NETCOREAPP3_0 || NETCOREAPP3_1
            await foreach (var r in allRows)
            {
                count++;
                Assert.AreEqual(13, ((IDictionary <string, object>)r).Count);        // # of fields fetched should be 13
            }
#else
            await allRows.ForEachAsync(r => {
                count++;
                Assert.AreEqual(13, ((IDictionary <string, object>)r).Count);        // # of fields fetched should be 13
            });
#endif
            Assert.AreEqual(1000, count);
        }