git.fiddlerwoaroof.com
Browse code

Fix installer_test for totp_generator interface

Ed Langley authored on 30/05/2017 21:19:48
Showing 1 changed files
... ...
@@ -53,10 +53,17 @@ public:
53 53
 
54 54
 class fake_totp_generator : public token_generator_ifc
55 55
 {
56
-    public:
57
-        std::string generate_token() {
58
-            return "000000";
59
-        }
56
+private:
57
+    std::string expected_token;
58
+public:
59
+    fake_totp_generator (const std::string expected_token = "000000"):
60
+        expected_token (expected_token)
61
+    {}
62
+
63
+    std::string generate_token() const override
64
+    {
65
+        return expected_token;
66
+    }
60 67
 };
61 68
 
62 69
 class fake_directory : public directory_ifc
... ...
@@ -90,9 +97,12 @@ int installs_token()
90 97
     tokens tokens{test_tokens};
91 98
     unistd unistd (std::make_shared<fake_unistd> (user_name));
92 99
     directory directory (std::make_shared<fake_directory> (user_name));
93
-    totp_generator *generator = new totp_generator(std::make_shared<fake_totp_generator>());
100
+    std::shared_ptr<fake_totp_generator> fake_generator =
101
+        std::make_shared<fake_totp_generator> (token);
102
+    auto generator = std::make_shared<totp_generator> (fake_generator);
94 103
 
95
-    installer installer = installer::create (tokens, unistd, directory, std::shared_ptr<totp_generator> (generator));
104
+    installer installer = installer::create (tokens, unistd, directory,
105
+                          generator);
96 106
 
97 107
     //when
98 108
     std::string result = installer.install_token();
... ...
@@ -112,9 +122,11 @@ int unistd_does_not_find_user_name_nullptr_case()
112 122
     tokens tokens{test_tokens};
113 123
     unistd unistd (std::make_shared<fail_unistd>());
114 124
     directory directory (std::make_shared<fake_directory> (user_name));
115
-    auto generator = std::shared_ptr<totp_generator>(new totp_generator(std::make_shared<fake_totp_generator>()));
125
+    auto generator = std::make_shared<totp_generator>
126
+                     (std::make_shared<fake_totp_generator>());
116 127
 
117
-    installer installer = installer::create (tokens, unistd, directory, generator);
128
+    installer installer = installer::create (tokens, unistd, directory,
129
+                          generator);
118 130
 
119 131
     //when
120 132
     auto returned = installer.install_token();
... ...
@@ -135,9 +147,11 @@ int unistd_does_not_find_user_name_empty_string_case()
135 147
     tokens tokens{test_tokens};
136 148
     unistd unistd (std::make_shared<fake_unistd> (""));
137 149
     directory directory (std::make_shared<fake_directory> (user_name));
138
-    auto generator = std::shared_ptr<totp_generator>(new totp_generator(std::make_shared<fake_totp_generator>()));
150
+    auto generator = std::shared_ptr<totp_generator> (new totp_generator (
151
+                         std::make_shared<fake_totp_generator>()));
139 152
 
140
-    installer installer = installer::create (tokens, unistd, directory, generator);
153
+    installer installer = installer::create (tokens, unistd, directory,
154
+                          generator);
141 155
 
142 156
     //when
143 157
     auto returned = installer.install_token();
... ...
@@ -157,9 +171,11 @@ int directory_finds_no_user_info()
157 171
     tokens tokens{test_tokens};
158 172
     unistd unistd (std::make_shared<fake_unistd> (user_name));
159 173
     directory directory (std::make_shared<fake_directory> ("not the user"));
160
-    auto generator = std::shared_ptr<totp_generator>(new totp_generator(std::make_shared<fake_totp_generator>()));
174
+    auto generator = std::shared_ptr<totp_generator> (new totp_generator (
175
+                         std::make_shared<fake_totp_generator>()));
161 176
 
162
-    installer installer = installer::create (tokens, unistd, directory, generator);
177
+    installer installer = installer::create (tokens, unistd, directory,
178
+                          generator);
163 179
 
164 180
     //when
165 181
     auto returned = installer.install_token();