| 
									
										
										
										
											2015-05-05 20:15:40 +00:00
										 |  |  | ExUnit.start() | 
					
						
							| 
									
										
										
										
											2017-01-22 21:19:23 +00:00
										 |  |  | Postgrex.Types.define( | 
					
						
							|  |  |  |   ISN.PostgrexTypes, | 
					
						
							|  |  |  |   [{ISN, :reference}], | 
					
						
							|  |  |  |   []) | 
					
						
							| 
									
										
										
										
											2015-05-21 06:46:07 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-01-10 11:12:38 +00:00
										 |  |  | defmodule ISN.TestHelper do | 
					
						
							| 
									
										
										
										
											2016-07-17 09:14:41 +00:00
										 |  |  |   def conn_options do | 
					
						
							|  |  |  |     db_options = [ | 
					
						
							| 
									
										
										
										
											2015-08-10 19:57:49 +00:00
										 |  |  |       sync_connect: true, | 
					
						
							| 
									
										
										
										
											2016-07-17 09:14:41 +00:00
										 |  |  |       hostname: "localhost", | 
					
						
							| 
									
										
										
										
											2017-01-22 21:19:23 +00:00
										 |  |  |       types: ISN.PostgrexTypes, | 
					
						
							| 
									
										
										
										
											2016-07-17 09:14:41 +00:00
										 |  |  |       database: "isn_test"] | 
					
						
							| 
									
										
										
										
											2015-06-18 15:26:42 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-07-17 09:14:41 +00:00
										 |  |  |     db_user = System.get_env("DATABASE_POSTGRESQL_USERNAME") | 
					
						
							|  |  |  |     db_pass = System.get_env("DATABASE_POSTGRESQL_PASSWORD") | 
					
						
							| 
									
										
										
										
											2015-06-18 15:26:42 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-07-17 09:14:41 +00:00
										 |  |  |     db_options = | 
					
						
							| 
									
										
										
										
											2017-01-22 21:19:23 +00:00
										 |  |  |       if db_user do | 
					
						
							|  |  |  |         Map.put(db_options, :username, db_user) | 
					
						
							|  |  |  |       else | 
					
						
							|  |  |  |         db_options | 
					
						
							|  |  |  |       end | 
					
						
							| 
									
										
										
										
											2016-07-17 09:14:41 +00:00
										 |  |  |     db_options = | 
					
						
							| 
									
										
										
										
											2017-01-22 21:19:23 +00:00
										 |  |  |       if db_pass do | 
					
						
							|  |  |  |         Map.put(db_options, :password, db_pass) | 
					
						
							|  |  |  |       else | 
					
						
							|  |  |  |         db_options | 
					
						
							|  |  |  |       end | 
					
						
							| 
									
										
										
										
											2015-06-18 15:26:42 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-07-17 09:14:41 +00:00
										 |  |  |     db_options | 
					
						
							|  |  |  |   end | 
					
						
							| 
									
										
										
										
											2015-06-18 15:26:42 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-05-21 06:46:07 +00:00
										 |  |  |   defmacro query(pid, statement, params) do | 
					
						
							|  |  |  |     quote bind_quoted: [pid: pid, statement: statement, params: params] do | 
					
						
							| 
									
										
										
										
											2016-07-17 09:14:41 +00:00
										 |  |  |       case Postgrex.query!(pid, statement, params, []) do | 
					
						
							| 
									
										
										
										
											2015-08-10 19:57:49 +00:00
										 |  |  |         %Postgrex.Result{rows: nil} -> :ok | 
					
						
							|  |  |  |         %Postgrex.Result{rows: rows} -> rows | 
					
						
							|  |  |  |         %Postgrex.Error{} = err -> err | 
					
						
							| 
									
										
										
										
											2015-05-21 06:46:07 +00:00
										 |  |  |       end | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | end | 
					
						
							| 
									
										
										
										
											2015-06-18 15:26:42 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-01-10 11:12:38 +00:00
										 |  |  | db_options = Keyword.merge(ISN.TestHelper.conn_options, [database: "postgres"]) | 
					
						
							| 
									
										
										
										
											2016-07-17 09:14:41 +00:00
										 |  |  | {:ok, pid} = Postgrex.start_link(db_options) | 
					
						
							| 
									
										
										
										
											2015-06-18 15:26:42 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-07-17 09:14:41 +00:00
										 |  |  | Postgrex.query!(pid, "DROP DATABASE IF EXISTS isn_test;", []) | 
					
						
							|  |  |  | Postgrex.query!(pid, "CREATE DATABASE isn_test;", []) | 
					
						
							|  |  |  | {:ok, pid} = Postgrex.start_link(ISN.TestHelper.conn_options) | 
					
						
							|  |  |  | Postgrex.query!(pid, "CREATE EXTENSION isn;", []) |