git.fiddlerwoaroof.com
Browse code

refactor fake pam/conversation

Greg Wiley authored on 17/04/2017 17:58:38
Showing 1 changed files
... ...
@@ -28,19 +28,21 @@ class fake_pam_conversation : public pam_conversation {
28 28
 
29 29
 class fake_pam : public pam {
30 30
     private:
31
-        std::string answer_;
31
+        std::shared_ptr<pam_conversation> conversation_;
32 32
     public:
33
-        fake_pam(const std::string &answer) : answer_(answer) {}
33
+        fake_pam(std::shared_ptr<pam_conversation> conversation) : conversation_(conversation) {}
34 34
         int get_conversation(pam_handle_t *pamh, std::shared_ptr<pam_conversation> &conversation) {
35
-           conversation.reset(new fake_pam_conversation(answer_));
35
+           conversation = conversation_;
36 36
            return 0;
37 37
         }
38 38
 };
39 39
 
40
+
40 41
 int returns_correct_token() {
41 42
     //given
42 43
     pam_handle_t *pamh;
43
-    pam_p pam = (pam_p)new fake_pam("user:code");
44
+    pam_conversation_p fake_conversation = (pam_conversation_p) new fake_pam_conversation("user:code");
45
+    pam_p pam = (pam_p)new fake_pam(fake_conversation);
44 46
 
45 47
     //when
46 48
     pam_token_conversation conversation(pamh, pam);
... ...
@@ -53,7 +55,9 @@ int returns_correct_token() {
53 55
 int returns_correct_user_name() {
54 56
     //given
55 57
     pam_handle_t *pamh;
56
-    pam_p pam = (pam_p)new fake_pam("sally:token");
58
+    pam_conversation_p fake_conversation = (pam_conversation_p) new fake_pam_conversation("sally:token");
59
+    pam_p pam = (pam_p)new fake_pam(fake_conversation);
60
+
57 61
 
58 62
     //when
59 63
     pam_token_conversation conversation(pamh, pam);
... ...
@@ -66,7 +70,8 @@ int returns_correct_user_name() {
66 70
 int returns_empty_user_and_token_when_no_colon() {
67 71
     //given
68 72
     pam_handle_t *pamh;
69
-    pam_p pam = (pam_p)new fake_pam("sally");
73
+    pam_conversation_p fake_conversation = (pam_conversation_p) new fake_pam_conversation("sally");
74
+    pam_p pam = (pam_p)new fake_pam(fake_conversation);
70 75
 
71 76
     //when
72 77
     pam_token_conversation conversation(pamh, pam);
... ...
@@ -80,7 +85,8 @@ int returns_empty_user_and_token_when_no_colon() {
80 85
 int returns_empty_user_and_token_when_empty_answer() {
81 86
     //given
82 87
     pam_handle_t *pamh;
83
-    pam_p pam = (pam_p)new fake_pam("");
88
+    pam_conversation_p fake_conversation = (pam_conversation_p) new fake_pam_conversation("");
89
+    pam_p pam = (pam_p)new fake_pam(fake_conversation);
84 90
 
85 91
     //when
86 92
     pam_token_conversation conversation(pamh, pam);
... ...
@@ -94,7 +100,8 @@ int returns_empty_user_and_token_when_empty_answer() {
94 100
 int returns_empty_token_when_colon_end() {
95 101
     //given
96 102
     pam_handle_t *pamh;
97
-    pam_p pam = (pam_p)new fake_pam("sally:");
103
+    pam_conversation_p fake_conversation = (pam_conversation_p) new fake_pam_conversation("sally:");
104
+    pam_p pam = (pam_p)new fake_pam(fake_conversation);
98 105
 
99 106
     //when
100 107
     pam_token_conversation conversation(pamh, pam);
... ...
@@ -108,7 +115,8 @@ int returns_empty_token_when_colon_end() {
108 115
 int returns_empty_user_when_colon_begin() {
109 116
     //given
110 117
     pam_handle_t *pamh;
111
-    pam_p pam = (pam_p)new fake_pam(":token");
118
+    pam_conversation_p fake_conversation = (pam_conversation_p) new fake_pam_conversation(":token");
119
+    pam_p pam = (pam_p)new fake_pam(fake_conversation);
112 120
 
113 121
     //when
114 122
     pam_token_conversation conversation(pamh, pam);