public void CanFindAll()
        {
            var keys = new[]
            {
                new XmlKey {
                    Xml = "<tag1></tag1>"
                },
                new XmlKey {
                    Xml = "<tag2></tag2>"
                }
            };

            foreach (var key in keys)
            {
                key.Id = _postgresTestHelper.Connection.ExecuteScalar <Guid>(@"INSERT into ""XmlKeys""(Xml) values (@Xml) returning Id", key);
            }
            var repo = new DbXmlKeysRepository(_postgresTestHelper.ConnectionFactory);

            var actualKeys = repo.FindAll().ToArray();

            Assert.AreEqual(keys.Length, actualKeys.Length);

            foreach (var key in keys)
            {
                Assert.IsTrue(actualKeys.Any(x => x.Id == key.Id && x.Xml == key.Xml), $"DB did not contain key with ID {key.Id}");
            }
        }
        public void UsesNewConnectionForEachFindCall()
        {
            var count = 0;
            var repo  = new DbXmlKeysRepository(() =>
            {
                count++;
                return(_postgresTestHelper.ConnectionFactory());
            });

            repo.FindAll();
            repo.FindAll();

            Assert.AreEqual(2, count);
        }
        public void AddsElementToTable()
        {
            const string xml  = "<tag></tag>";
            var          repo = new DbXmlKeysRepository(_postgresTestHelper.ConnectionFactory);

            var insertedKey = repo.Add(new XmlKey {
                Xml = xml
            });

            var actualKey = _postgresTestHelper.Connection.QueryFirst <XmlKey>(
                @"Select * from ""XmlKeys"" where Id = @Id",
                new { Id = insertedKey });

            Assert.AreEqual(xml, actualKey.Xml);
        }
        public void UsesNewConnectionForEachAdd()
        {
            const string xml   = "<tag></tag>";
            var          count = 0;
            var          repo  = new DbXmlKeysRepository(() =>
            {
                count++;
                return(_postgresTestHelper.ConnectionFactory());
            });

            repo.Add(new XmlKey {
                Xml = xml
            });
            repo.Add(new XmlKey {
                Xml = xml
            });

            Assert.AreEqual(2, count);
        }