update
This commit is contained in:
44
phoenix/deps/ecto_sql/integration_test/sql/stream.exs
Normal file
44
phoenix/deps/ecto_sql/integration_test/sql/stream.exs
Normal file
@@ -0,0 +1,44 @@
|
||||
defmodule Ecto.Integration.StreamTest do
|
||||
use Ecto.Integration.Case, async: Application.compile_env(:ecto, :async_integration_tests, true)
|
||||
|
||||
alias Ecto.Integration.TestRepo
|
||||
alias Ecto.Integration.Post
|
||||
alias Ecto.Integration.Comment
|
||||
import Ecto.Query
|
||||
|
||||
test "stream empty" do
|
||||
assert {:ok, []} = TestRepo.transaction(fn() ->
|
||||
TestRepo.stream(Post)
|
||||
|> Enum.to_list()
|
||||
end)
|
||||
|
||||
assert {:ok, []} = TestRepo.transaction(fn() ->
|
||||
TestRepo.stream(from p in Post)
|
||||
|> Enum.to_list()
|
||||
end)
|
||||
end
|
||||
|
||||
test "stream without schema" do
|
||||
%Post{} = TestRepo.insert!(%Post{title: "title1"})
|
||||
%Post{} = TestRepo.insert!(%Post{title: "title2"})
|
||||
|
||||
assert {:ok, ["title1", "title2"]} = TestRepo.transaction(fn() ->
|
||||
TestRepo.stream(from(p in "posts", order_by: p.title, select: p.title))
|
||||
|> Enum.to_list()
|
||||
end)
|
||||
end
|
||||
|
||||
test "stream with assoc" do
|
||||
p1 = TestRepo.insert!(%Post{title: "1"})
|
||||
|
||||
%Comment{id: cid1} = TestRepo.insert!(%Comment{text: "1", post_id: p1.id})
|
||||
%Comment{id: cid2} = TestRepo.insert!(%Comment{text: "2", post_id: p1.id})
|
||||
|
||||
stream = TestRepo.stream(Ecto.assoc(p1, :comments))
|
||||
assert {:ok, [c1, c2]} = TestRepo.transaction(fn() ->
|
||||
Enum.to_list(stream)
|
||||
end)
|
||||
assert c1.id == cid1
|
||||
assert c2.id == cid2
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user