From 46ed9883eac5d27a87f183f7bfbfedefe72ff1d0 Mon Sep 17 00:00:00 2001 From: David Chell Date: Mon, 12 Mar 2012 14:01:40 +1300 Subject: [PATCH] Added test for Posgresql Array parameters --- Tests/DapperTests.csproj | 5 +++- Tests/Tests.cs | 51 +++++++++++++++++++++++++++++++++++++++- 2 files changed, 54 insertions(+), 2 deletions(-) diff --git a/Tests/DapperTests.csproj b/Tests/DapperTests.csproj index be8c3e9..f31614a 100644 --- a/Tests/DapperTests.csproj +++ b/Tests/DapperTests.csproj @@ -65,6 +65,9 @@ NHibernate\NHibernate.ByteCode.LinFu.dll + + ..\..\..\WebSites\PoolBooking\bin\Npgsql.dll + False OrmLite\ServiceStack.Common.dll @@ -183,7 +186,7 @@ DataClasses.designer.cs Designer - + SettingsSingleFileGenerator Settings.Designer.cs diff --git a/Tests/Tests.cs b/Tests/Tests.cs index 8d100a2..6df3184 100644 --- a/Tests/Tests.cs +++ b/Tests/Tests.cs @@ -1,4 +1,5 @@ -using System; +#define POSTGRESQL +using System; using System.Collections.Generic; using System.Data.SqlClient; using System.Linq; @@ -8,6 +9,10 @@ using System.Data; using System.Collections; using System.Reflection; +#if POSTGRESQL +using Dapper.Contrib.Extensions; +using Npgsql; +#endif namespace SqlMapper { @@ -1335,5 +1340,49 @@ public enum ShortEnum : short { Zero = 0, One = 1, Two = 2, Three = 3, Four = 4, Five = 5, Six = 6 } + +#if POSTGRESQL + [Table("tcat")] + class Cat + { + [Key] + public int Id { get; set; } + public string Breed { get; set; } + public string Name { get; set; } + } + + Cat[] Cats = { + new Cat() { Breed = "Abyssinian", Name="KACTUS"}, + new Cat() { Breed = "Aegean cat", Name="KADAFFI"}, + new Cat() { Breed = "American Bobtail", Name="KANJI"}, + new Cat() { Breed = "Balinese", Name="MACARONI"}, + new Cat() { Breed = "Bombay", Name="MACAULAY"}, + new Cat() { Breed = "Burmese", Name="MACBETH"}, + new Cat() { Breed = "Chartreux", Name="MACGYVER"}, + new Cat() { Breed = "German Rex", Name="MACKENZIE"}, + new Cat() { Breed = "Javanese", Name="MADISON"}, + new Cat() { Breed = "Persian", Name="MAGNA"} + }; + + public void TestPostresqlArrayParameters() + { + using (var conn = new NpgsqlConnection("Server=localhost;Port=5432;User Id=dappertest;Password=dapperpass;Database=dappertest;Encoding=UNICODE")) + { + conn.Open(); + IDbTransaction transaction = conn.BeginTransaction(); + conn.Execute("create table tcat ( id serial not null, breed character varying(20) not null, name character varying (20) not null);"); + + foreach (var cat in Cats) + conn.Insert(cat); + + var r = conn.Query("select * from tcat where id=any(:catids)", new { catids = new[] { 1, 3, 5 } }); + r.Count().IsEqualTo(3); + r.Count(c => c.Id == 1).IsEqualTo(1); + r.Count(c => c.Id == 3).IsEqualTo(1); + r.Count(c => c.Id == 5).IsEqualTo(1); + transaction.Rollback(); + } + } +#endif } } -- GitLab