public void GetReturnsClone() {
     var table = new InMemoryTable<Post, int>(new TestConfiguration());
     var post = new Post { Title = "Foo" };
     table.Insert(post);
     var returnedPost = table.Get(1);
     Assert.NotNull(returnedPost);
     Assert.Equal("Foo", returnedPost.Title);
     Assert.False(post == returnedPost);
     Assert.True(post.Equals(returnedPost));
 }
 public void QueryWorks() {
     var table = new InMemoryTable<Post, int>(new TestConfiguration());
     var post1 = new Post() { Title = "Foo" };
     var post2 = new Post() { Title = "Bar" };
     table.Insert(post1);
     table.Insert(post2);
     var posts = table.Query().ToArray();
     Assert.Equal(2, posts.Length);
     Assert.True(post1.Equals(posts[0]));
     Assert.True(post2.Equals(posts[1]));
 }
        public void CloneWorks() {
            var cloner = new EntityCloner<Post>(new TestConfiguration());
            var post = new Post() { PostId = 1, Title = "Foo", Blog = new Blog { BlogId = 1, Title = "My Blog" }};
            var clone = cloner.Clone(post);

            Assert.False(post == clone);
            Assert.True(post.Equals(clone));
            Assert.False(ReferenceEquals(post.Title, clone.Title));
            Assert.Equal(post.PostId, clone.PostId);
            Assert.True(post.Blog.Equals(clone.Blog));
            Assert.False(post.Blog == clone.Blog);
            Assert.Null(clone.Blog.Title);
            Assert.Equal("My Blog", post.Blog.Title);
        }
 public void UpdateWorks() {
     var table = new InMemoryTable<Post, int>(new TestConfiguration());
     var post1 = new Post() { Title = "Foo" };
     table.Insert(post1);
     post1.Title = "Bar";
     table.Update(post1);
     var updatedPost = table.Get(1);
     Assert.False(post1 == updatedPost);
     Assert.True(post1.Equals(updatedPost));
     Assert.Equal("Bar", updatedPost.Title);
 }