@@ -135,4 +135,43 @@ defmodule Ecto.ULIDTest do
135135 test "load/1 returns error when data is too long" do
136136 assert Ecto.ULID . load ( << 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 >> ) == :error
137137 end
138+
139+ test "embed_as/1 returns :dump" do
140+ ulid = Ecto.ULID . bingenerate ( )
141+ assert Ecto.ULID . embed_as ( ulid ) == :dump
142+ end
143+
144+ test "embedded_dump dumps ULID as string to schema" do
145+ ulid = Ecto.ULID . generate ( )
146+ { :ok , decoded } = Ecto.ULID . dump ( ulid )
147+ assert Ecto.Type . embedded_dump ( Ecto.ULID , ulid , :any_format ) == { :ok , decoded }
148+ end
149+
150+ test "embedded_load loads ULID as binary from embeded schema" do
151+ ulid = Ecto.ULID . bingenerate ( )
152+ { :ok , encoded } = Ecto.ULID . load ( ulid )
153+ assert Ecto.Type . embedded_load ( Ecto.ULID , ulid , :any_format ) == { :ok , encoded }
154+ end
155+
156+ test "equal?/1 compares correctly two equal string ULIDs" do
157+ ulid = Ecto.ULID . generate ( )
158+ assert Ecto.ULID . equal? ( ulid , ulid ) == true
159+ end
160+
161+ test "equal?/1 compares correctly two different string ULIDs" do
162+ ulid1 = Ecto.ULID . generate ( )
163+ ulid2 = Ecto.ULID . generate ( )
164+ assert Ecto.ULID . equal? ( ulid1 , ulid2 ) == false
165+ end
166+
167+ test "equal?/1 compares correctly two equal binary ULIDs" do
168+ ulid = Ecto.ULID . bingenerate ( )
169+ assert Ecto.ULID . equal? ( ulid , ulid ) == true
170+ end
171+
172+ test "equal?/1 compares correctly two different binary ULIDs" do
173+ ulid1 = Ecto.ULID . bingenerate ( )
174+ ulid2 = Ecto.ULID . bingenerate ( )
175+ assert Ecto.ULID . equal? ( ulid1 , ulid2 ) == false
176+ end
138177end
0 commit comments