54 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Elixir
		
	
	
	
			
		
		
	
	
			54 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Elixir
		
	
	
	
| defmodule IsnTest 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, {}}])
 | |
|     {: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
 | |
| 
 |