Exemplo n.º 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);
        }
Exemplo n.º 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);
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 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);
        }
Exemplo n.º 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);
        }
Exemplo n.º 6
0
        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);
        }
Exemplo n.º 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);
        }
Exemplo n.º 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"));
        }
Exemplo n.º 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);
        }
Exemplo n.º 10
0
        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);
        }
Exemplo n.º 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);
        }
Exemplo n.º 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);
        }
Exemplo n.º 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);
        }
Exemplo n.º 14
0
        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);
        }
Exemplo n.º 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);
        }
Exemplo n.º 16
0
        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);
        }
Exemplo n.º 17
0
        public async Task InsertWorks(TestSessionWrapper wrapper)
        {
            var comment = new Comment {
                Content = "Foo"
            };
            await wrapper.Session.InsertAsync(comment);

            Assert.NotEqual(0, comment.CommentId);
        }
Exemplo n.º 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());
        }
Exemplo n.º 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);
        }
Exemplo n.º 20
0
        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);
        }
Exemplo n.º 21
0
        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);
        }
Exemplo n.º 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);
        }
Exemplo n.º 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);
        }
Exemplo n.º 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);
        }
Exemplo n.º 25
0
        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);
        }
Exemplo n.º 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);
        }
Exemplo n.º 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);
        }
Exemplo n.º 28
0
        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);
        }
Exemplo n.º 29
0
        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());
        }
Exemplo n.º 30
0
        public void TestFetchingEmptyCollection(TestSessionWrapper wrapper)
        {
            var emptyBlog = wrapper.Session.Query <Blog>().First(b => b.Title == "EmptyBlog");

            Assert.Empty(emptyBlog.Posts);
        }