Added encode/decode tests for postgrex extension
This commit is contained in:
parent
4b2fe9d0b8
commit
00cd25485e
16
README.md
16
README.md
|
|
@ -1,4 +1,14 @@
|
|||
Isn
|
||||
===
|
||||
# Isn
|
||||
|
||||
** TODO: Add description **
|
||||
Add support for the `isn` module in Postgrex/Ecto.
|
||||
|
||||
This module adds the following ecto types:
|
||||
|
||||
* Isn.ISBN
|
||||
* Isn.ISBN13
|
||||
* Isn.ISMN
|
||||
* Isn.ISMN13
|
||||
* Isn.ISSN
|
||||
* Isn.ISSN13
|
||||
* Isn.EAN13
|
||||
* Isn.UPC
|
||||
|
|
|
|||
|
|
@ -0,0 +1,53 @@
|
|||
defmodule IsnExtensionTest do
|
||||
use ExUnit.Case, async: true
|
||||
import Isn.TestHelper
|
||||
alias Postgrex.Connection, as: P
|
||||
|
||||
setup do
|
||||
{:ok, pid} = P.start_link(
|
||||
database: "isn_test",
|
||||
extensions: [{Isn.Extension, {}}])
|
||||
{:ok, [pid: pid]}
|
||||
end
|
||||
|
||||
test "encode and decode isbn", context do
|
||||
assert [{"1-937785-58-0"}] =
|
||||
query(context[:pid], "SELECT $1::isbn", ['1937785580'])
|
||||
end
|
||||
|
||||
test "encode and decode isbn13", context do
|
||||
assert [{"978-1-937785-58-1"}] =
|
||||
query(context[:pid], "SELECT $1::isbn13", ['9781937785581'])
|
||||
end
|
||||
|
||||
test "encode and decode ismn", context do
|
||||
assert [{"M-060-11561-5"}] =
|
||||
query(context[:pid], "SELECT $1::ismn", ['9790060115615'])
|
||||
end
|
||||
|
||||
test "encode and decode ismn13", context do
|
||||
assert [{"979-0-060-11561-5"}] =
|
||||
query(context[:pid], "SELECT $1::ismn13", ['9790060115615'])
|
||||
end
|
||||
|
||||
test "encode and decode issn", context do
|
||||
assert [{"1436-4522"}] =
|
||||
query(context[:pid], "SELECT $1::issn", ['14364522'])
|
||||
end
|
||||
|
||||
test "encode and decode issn13", context do
|
||||
assert [{"977-1436-452-00-8"}] =
|
||||
query(context[:pid], "SELECT issn13(issn('1436-4522'))", [])
|
||||
end
|
||||
|
||||
test "encode and decode ean13", context do
|
||||
assert [{"022-035648348-1"}] =
|
||||
query(context[:pid], "SELECT $1::ean13", ["0220356483481"])
|
||||
end
|
||||
|
||||
test "encode and decode upc", context do
|
||||
assert [{"220356483481"}] =
|
||||
query(context[:pid], "SELECT $1::upc", ["220356483481"])
|
||||
end
|
||||
end
|
||||
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
defmodule Isn.ISBN13Test do
|
||||
use ExUnit.Case
|
||||
|
||||
# dump
|
||||
# cast
|
||||
# load
|
||||
end
|
||||
|
|
@ -1,8 +0,0 @@
|
|||
defmodule IsnTest do
|
||||
use ExUnit.Case
|
||||
doctest Isn
|
||||
|
||||
test "the truth" do
|
||||
assert 1 + 1 == 2
|
||||
end
|
||||
end
|
||||
|
|
@ -1 +1,26 @@
|
|||
ExUnit.start()
|
||||
|
||||
{:ok, pid} = Postgrex.Connection.start_link(
|
||||
hostname: "localhost",
|
||||
database: "postgres"
|
||||
)
|
||||
|
||||
Postgrex.Connection.query!(pid, "DROP DATABASE IF EXISTS isn_test;", [])
|
||||
Postgrex.Connection.query!(pid, "CREATE DATABASE isn_test;", [])
|
||||
{:ok, pid} = Postgrex.Connection.start_link(
|
||||
hostname: "localhost",
|
||||
database: "isn_test"
|
||||
)
|
||||
Postgrex.Connection.query!(pid, "CREATE EXTENSION isn;", [])
|
||||
|
||||
defmodule Isn.TestHelper do
|
||||
defmacro query(pid, statement, params) do
|
||||
quote bind_quoted: [pid: pid, statement: statement, params: params] do
|
||||
case Postgrex.Connection.query(pid, statement, params, []) do
|
||||
{:ok, %Postgrex.Result{rows: nil}} -> :ok
|
||||
{:ok, %Postgrex.Result{rows: rows}} -> rows
|
||||
{:error, %Postgrex.Error{} = err} -> err
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
|||
Loading…
Reference in New Issue