Mercurial > malikania
annotate tests/libserver/dao-account/main.cpp @ 29:99792c6c8b06
Server: add initial postgresql account management, #475
author | David Demelier <markand@malikania.fr> |
---|---|
date | Thu, 26 May 2016 07:32:05 +0200 |
parents | |
children | a1e80d991968 |
rev | line source |
---|---|
29
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
1 /* |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
2 * main.cpp -- test AccountDao |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
3 * |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
4 * Copyright (c) 2013-2016 David Demelier <markand@malikania.fr> |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
5 * |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
6 * Permission to use, copy, modify, and/or distribute this software for any |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
7 * purpose with or without fee is hereby granted, provided that the above |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
8 * copyright notice and this permission notice appear in all copies. |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
9 * |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
17 */ |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
18 |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
19 #include <cassert> |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
20 |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
21 #include <gtest/gtest.h> |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
22 |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
23 #include <sysconfig-tests.h> |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
24 |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
25 #include <malikania/account.h> |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
26 #include <malikania/dao-account.h> |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
27 #include <malikania/database.h> |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
28 |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
29 using namespace malikania; |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
30 |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
31 class TestAccountDao : public testing::Test { |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
32 protected: |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
33 Database m_database; |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
34 AccountDao m_dao; |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
35 |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
36 public: |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
37 TestAccountDao() |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
38 : m_database(DRIVERDIR "pgsql.so", { |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
39 { "host", WITH_TEST_PGSQL_HOST }, |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
40 { "port", WITH_TEST_PGSQL_PORT }, |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
41 { "user", WITH_TEST_PGSQL_USER }, |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
42 { "database", WITH_TEST_PGSQL_DATABASE } |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
43 }) |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
44 , m_dao(m_database) |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
45 { |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
46 m_dao.clear(); |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
47 |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
48 assert(m_dao.count() == 0U); |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
49 } |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
50 }; |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
51 |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
52 TEST_F(TestAccountDao, create) |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
53 { |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
54 try { |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
55 Account ac; |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
56 |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
57 ac.setName("jean"); |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
58 ac.setEmail("jean@christophe.fr"); |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
59 ac.setFirstName("Jean"); |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
60 ac.setLastName("Christophe"); |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
61 ac.setPassword("raw"); |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
62 |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
63 m_dao.create(ac); |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
64 |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
65 ASSERT_EQ(1U, m_dao.count()); |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
66 ASSERT_EQ(ac, m_dao.list()[0]); |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
67 } catch (const std::exception &ex) { |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
68 FAIL() << ex.what(); |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
69 } |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
70 } |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
71 |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
72 TEST_F(TestAccountDao, update) |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
73 { |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
74 try { |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
75 Account ac; |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
76 |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
77 ac.setName("jean"); |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
78 ac.setEmail("jean@christophe.fr"); |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
79 ac.setFirstName("Jean"); |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
80 ac.setLastName("Christophe"); |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
81 ac.setPassword("raw"); |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
82 |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
83 m_dao.create(ac); |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
84 |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
85 ac.setEmail("benoit@christophe.fr"); |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
86 ac.setFirstName("Benoit"); |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
87 |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
88 m_dao.update(ac); |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
89 |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
90 Account ac2 = m_dao.get(ac.id()); |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
91 |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
92 ASSERT_EQ("jean", ac2.name()); |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
93 ASSERT_EQ("benoit@christophe.fr", ac2.email()); |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
94 ASSERT_EQ("Benoit", ac2.firstName()); |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
95 } catch (const std::exception &ex) { |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
96 FAIL() << ex.what(); |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
97 } |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
98 } |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
99 |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
100 int main(int argc, char **argv) |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
101 { |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
102 testing::InitGoogleTest(&argc, argv); |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
103 |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
104 return RUN_ALL_TESTS(); |
99792c6c8b06
Server: add initial postgresql account management, #475
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
105 } |