コード例 #1
0
        public void DeleteBulk(TestSessionWrapper wrapper)
        {
            wrapper.Session.Delete <User>(u => u.Username == "BulkDelete");
            var users = wrapper.Session.Query <User>().Where(u => u.Username == "BulkDelete");

            Assert.Empty(users);
        }
コード例 #2
0
        public void WhereEnumerableWorks(TestSessionWrapper wrapper)
        {
            var ids   = new long[] { 1, 2, 3 };
            var posts = wrapper.Session.Query <Post>().Where(p => ids.Contains(p.PostId)).ToList();

            Assert.Equal(3, posts.Count);
        }
コード例 #3
0
ファイル: FetchTests.cs プロジェクト: kinimatt/dashing
        public void MultipleFetchParentWorks(TestSessionWrapper wrapper)
        {
            var posts = wrapper.Session.Query <PostTag>().Fetch(p => p.Post).Fetch(p => p.Tag).OrderBy(p => p.PostTagId).ToList();

            Assert.NotNull(posts.First().Post.Title);
            Assert.NotNull(posts.First().Tag.Content);
        }
コード例 #4
0
        public async Task DynamicQueryAsyncWorks(TestSessionWrapper wrapper)
        {
            var result = await wrapper.Session.Dapper.QueryAsync("select 1 as Id");

            Assert.Single(result);
            Assert.Equal(1, result.First().Id);
        }
コード例 #5
0
        public void OuterJoinDisjunctionWorks(TestSessionWrapper wrapper)
        {
            var posts = wrapper.Session.Query <Post>()
                        .Where(p => p.Blog.Title == "Blog_1" || p.Blog.Title == "Blog_2");

            Assert.NotEmpty(posts);
        }
コード例 #6
0
ファイル: EnumeratingTests.cs プロジェクト: Conaugh/dashing
        public void TestSingleAndFirst(TestSessionWrapper wrapper)
        {
            // now fetch them
            var t1 = wrapper.Session.Query <User>().First();

            Assert.Equal("User_0", t1.Username);

            var t2 = wrapper.Session.Query <User>().First(u => u.Username == "User_1");

            Assert.Equal("User_1", t2.Username);

            Assert.Throws <InvalidOperationException>(() => wrapper.Session.Query <User>().Single());

            var t3 = wrapper.Session.Query <User>().Single(u => u.Username == "User_2");

            Assert.Equal("User_2", t3.Username);

            var t4 = wrapper.Session.Query <User>().FirstOrDefault();

            Assert.Equal("User_0", t1.Username);

            var t5 = wrapper.Session.Query <User>().FirstOrDefault(u => u.Username == "Boo");

            Assert.Null(t5);

            var t6 = wrapper.Session.Query <User>().SingleOrDefault(u => u.Username == "Boo");

            Assert.Null(t6);
        }
コード例 #7
0
        public void TestChainedCollectionFetch(TestSessionWrapper wrapper)
        {
            var blog = wrapper.Session.Query <Blog>().FetchMany(p => p.Posts).ThenFetch(p => p.Comments).First();

            Assert.Equal(2, blog.Posts.Count);
            Assert.Equal(3, blog.Posts.First().Comments.Count);
        }
コード例 #8
0
        public void TestDelete(TestSessionWrapper wrapper)
        {
            var user = wrapper.Session.Query <User>().First(u => u.Username == "TestDelete");

            wrapper.Session.Delete(user);
            Assert.Empty(wrapper.Session.Query <User>().Where(u => u.Username == "TestDelete"));
        }
コード例 #9
0
        public void UpdateBulk(TestSessionWrapper wrapper)
        {
            wrapper.Session.Update <User>(u => u.Password = "******", u => u.Username == "BulkUpdate");
            var user = wrapper.Session.Query <User>().First(u => u.Username == "BulkUpdate");

            Assert.Equal("boo", user.Password);
        }
コード例 #10
0
ファイル: FetchTests.cs プロジェクト: kinimatt/dashing
        public void MultipleFetchWithNestedWorks(TestSessionWrapper wrapper)
        {
            var comment = wrapper.Session.Query <Comment>().Fetch(c => c.Post.Blog).Fetch(c => c.User).OrderBy(c => c.CommentId);

            Assert.NotNull(comment.First().Post.Blog.Title);
            Assert.NotNull(comment.First().User.Username);
        }
コード例 #11
0
        public void TestMultiCollectionFetch(TestSessionWrapper wrapper)
        {
            var posts = wrapper.Session.Query <Post>().Fetch(p => p.Comments).Fetch(p => p.Tags).Where(p => p.PostId == 1).ToList();

            Assert.True(posts.First().Comments.Count == 3);
            Assert.True(posts.First().Tags.Count == 2);
        }
コード例 #12
0
        public async Task StronglyTypedQueryWorks(TestSessionWrapper wrapper)
        {
            var result = await wrapper.Session.Dapper.QueryAsync <Foo>("select 1 as FooId, 'Rah' as Bar");

            Assert.Single(result);
            Assert.Equal(1, result.First().FooId);
            Assert.Equal("Rah", result.First().Bar);
        }
コード例 #13
0
        public void TestCollectionFetch(TestSessionWrapper wrapper)
        {
            var posts = wrapper.Session.Query <Post>().Fetch(p => p.Comments).ToList();

            Assert.True(
                posts.First(p => p.PostId == 1)
                .Comments.Count(c => c.Content == "Comment_0" || c.Content == "Comment_1" || c.Content == "Nullable User Content") == 3);
        }
コード例 #14
0
ファイル: ProjectionTests.cs プロジェクト: Itzalive/dashing
        public void FetchRelationIdWorks(TestSessionWrapper wrapper)
        {
            var blogs = wrapper.Session.Query <Post>()
                        .Select(p => p.Blog.BlogId)
                        .AsPaged(10, 10);

            Assert.Equal(10, blogs.Taken);
            Assert.True(blogs.TotalResults > 10);
        }
コード例 #15
0
        public void TestInsertGetsId(TestSessionWrapper wrapper)
        {
            var user = new User {
                Username = "******", EmailAddress = Guid.NewGuid().ToString(), Password = "******"
            };

            wrapper.Session.Insert(user);
            Assert.NotEqual(0, user.UserId);
        }
コード例 #16
0
ファイル: ProjectionTests.cs プロジェクト: Itzalive/dashing
        public void FetchSinglePropWorks(TestSessionWrapper wrapper)
        {
            var posts = wrapper.Session.Query <Post>()
                        .Select(p => p.PostId)
                        .AsPaged(10, 10);

            Assert.Equal(10, posts.Taken);
            Assert.True(posts.TotalResults > 10);
        }
コード例 #17
0
        public async Task InsertWorks(TestSessionWrapper wrapper)
        {
            var comment = new Comment {
                Content = "Foo"
            };
            await wrapper.Session.InsertAsync(comment);

            Assert.NotEqual(0, comment.CommentId);
        }
コード例 #18
0
        public async Task InsertAsyncEnablesTracking(TestSessionWrapper wrapper)
        {
            var user = new User {
                Username = "******", EmailAddress = Guid.NewGuid().ToString(), Password = "******"
            };
            await wrapper.Session.InsertAsync(user);

            Assert.True(((ITrackedEntity)user).IsTrackingEnabled());
        }
コード例 #19
0
        public void TestUpdate(TestSessionWrapper wrapper)
        {
            var user = wrapper.Session.Query <User>().First();

            user.HeightInMeters = 1.7m;
            wrapper.Session.Save(user);
            var dbUser = wrapper.Session.Get <User>(user.UserId);

            Assert.Equal(1.7m, dbUser.HeightInMeters);
        }
コード例 #20
0
ファイル: ProjectionTests.cs プロジェクト: Itzalive/dashing
        public void FetchProjectionPagedWorks(TestSessionWrapper wrapper)
        {
            var posts = wrapper.Session.Query <Post>()
                        .Select(p => new { p.Title, BlogTitle = p.Blog.Title })
                        .AsPaged(10, 10);

            Assert.Equal(10, posts.Taken);
            Assert.True(posts.TotalResults > 10);
            Assert.NotNull(posts.Items.ElementAt(0).Title);
            Assert.NotNull(posts.Items.ElementAt(0).BlogTitle);
        }
コード例 #21
0
ファイル: ProjectionTests.cs プロジェクト: Itzalive/dashing
        public void NoFetchProjectionWorks(TestSessionWrapper wrapper)
        {
            var ids   = new long[] { 1, 2, 3 };
            var posts = wrapper.Session.Query <Post>()
                        .Where(p => ids.Contains(p.PostId))
                        .Select(p => new { p.Title })
                        .ToList();

            Assert.Equal(3, posts.Count);
            Assert.NotNull(posts[0].Title);
        }
コード例 #22
0
        public void TestInsert(TestSessionWrapper wrapper)
        {
            var user = new User {
                Username = "******", EmailAddress = Guid.NewGuid().ToString(), Password = "******"
            };

            wrapper.Session.Insert(user);
            var dbUser = wrapper.Session.Query <User>().First(u => u.EmailAddress == user.EmailAddress);

            Assert.NotNull(dbUser);
        }
コード例 #23
0
        public void TestManyFetches(TestSessionWrapper wrapper)
        {
            var post =
                wrapper.Session.Query <Post>()
                .FetchMany(p => p.Comments)
                .ThenFetch(c => c.User)
                .Fetch(p => p.Blog)
                .Fetch(p => p.Author)
                .SingleOrDefault(p => p.PostId == 1);

            Assert.True(post != null);
        }
コード例 #24
0
        public void TestManyToManyThing(TestSessionWrapper wrapper)
        {
            var post =
                wrapper.Session.Query <Post>()
                .FetchMany(p => p.Tags)
                .ThenFetch(t => t.Tag)
                .Fetch(p => p.Blog)
                .Fetch(p => p.Author)
                .SingleOrDefault(p => p.PostId == 1);

            Assert.True(post != null);
        }
コード例 #25
0
ファイル: ProjectionTests.cs プロジェクト: Itzalive/dashing
        public void FetchRelationPropWorks(TestSessionWrapper wrapper)
        {
            var blogs = wrapper.Session.Query <Post>()
                        .Select(p => p.Blog)
                        .AsPaged(10, 10);

            Assert.Equal(10, blogs.Taken);
            Assert.True(blogs.TotalResults > 10);
            Assert.NotNull(
                blogs.Items.First()
                .Title);
        }
コード例 #26
0
        public void DateTimeInsertedAndSelectedCorrectly(TestSessionWrapper wrapper)
        {
            var date    = new DateTime(2016, 12, 25, 1, 3, 6, DateTimeKind.Utc);
            var comment = new Comment {
                Content = "Foo", CommentDate = date
            };

            wrapper.Session.Insert(comment);
            Assert.Equal(date, comment.CommentDate);
            var fetchedComment = wrapper.Session.Get <Comment>(comment.CommentId);

            Assert.Equal(date, fetchedComment.CommentDate);
        }
コード例 #27
0
        public void TestMultipleInsertUpdatesIds(TestSessionWrapper wrapper)
        {
            var user = new User {
                Username = "******", EmailAddress = "asd", Password = "******"
            };
            var user2 = new User {
                Username = "******", EmailAddress = "asd", Password = "******"
            };

            wrapper.Session.Insert(user, user2);
            Assert.NotEqual(0, user.UserId);
            Assert.NotEqual(0, user2.UserId);
            Assert.NotEqual(user.UserId, user2.UserId);
        }
コード例 #28
0
ファイル: FetchTests.cs プロジェクト: kinimatt/dashing
        public void MultipleFetchManyWithNonRootAndThenFetchWorks(TestSessionWrapper wrapper)
        {
            var responses =
                wrapper.Session.Query <QuestionnaireResponse>()
                .Where(qr => qr.Questionnaire.QuestionnaireId == 1)
                .Fetch(qr => qr.Questionnaire)
                .FetchMany(qr => qr.Responses)
                .ThenFetch(qrr => qrr.Question)
                .FetchMany(qr => qr.Booking.Beds)
                .ThenFetch(b => b.RoomSlot.Room)
                .ToArray();

            Assert.Single(responses);
            Assert.Equal(1, responses.First().Booking.Beds.Count);
        }
コード例 #29
0
ファイル: FetchTests.cs プロジェクト: kinimatt/dashing
        public void FetchWithNonFetchedWhere(TestSessionWrapper wrapper)
        {
            var comment = wrapper.Session.Query <Comment>().Fetch(c => c.Post.Blog).Where(c => c.User.EmailAddress == "foo");

            Assert.Null(comment.FirstOrDefault());
        }
コード例 #30
0
        public void TestFetchingEmptyCollection(TestSessionWrapper wrapper)
        {
            var emptyBlog = wrapper.Session.Query <Blog>().First(b => b.Title == "EmptyBlog");

            Assert.Empty(emptyBlog.Posts);
        }