GSS Acquire Cred calling out correctly; slight reorginzation
[gssweb.git] / json_gssapi / test / GSSAcquireCredTest.cpp
1 /*
2  * Copyright (c) 2014 <copyright holder> <email>
3  *
4  * For license details, see the LICENSE file in the root of this project.
5  *
6  */
7
8 #include "GSSAcquireCredTest.h"
9 #include "GSSAcquireCred.h"
10 #include "command_mocks/MockAcquireCred.h"
11 #include <datamodel/GSSName.h>
12 #include <gssapi.h>
13
14 CPPUNIT_TEST_SUITE_REGISTRATION( GSSAcquireCredTest );
15
16 OM_uint32 KRB5_CALLCONV
17 mock_acquire_cred(
18     OM_uint32 *minor_status,
19     gss_name_t desired_name,
20     OM_uint32 time_req,
21     gss_OID_set desired_mechs,
22     gss_cred_usage_t cred_usage,
23     gss_cred_id_t * output_cred_handle,
24     gss_OID_set * actual_mechs,
25     OM_uint32 *time_rec)
26 {
27   
28   // Set MockAcquireCred attributes from our in-parameters
29   MockAcquireCred::desired_name = desired_name;
30   MockAcquireCred::time_req = time_req;
31   MockAcquireCred::desired_mechs = desired_mechs;
32   MockAcquireCred::cred_usage = cred_usage;
33   
34   // Set our out-parameters from MockAcquireCred
35   *output_cred_handle = MockAcquireCred::output_cred_handle;
36   *actual_mechs = MockAcquireCred::actual_mechs;
37   *time_rec = MockAcquireCred::time_rec;
38   
39   *minor_status = MockAcquireCred::minor_status;
40   return(MockAcquireCred::retVal);
41 }
42
43 void GSSAcquireCredTest::setUp()
44 {
45
46 }
47
48 void GSSAcquireCredTest::tearDown()
49 {
50
51 }
52
53 void GSSAcquireCredTest::testConstructor()
54 {
55   /* Variables */
56   GSSAcquireCred cmd = GSSAcquireCred();
57   
58   /* Error checking */
59   /* Setup */
60   /* Main */
61   CPPUNIT_ASSERT_EQUAL_MESSAGE(
62     "The GSSImportName object has the wrong GSS function",
63     &gss_acquire_cred,
64     cmd.getGSSFunction()
65   );
66   
67   /* Cleanup */
68   /* Return */
69 }
70
71 void GSSAcquireCredTest::testConstructorWithJSONObject()
72 {
73
74 }
75
76 void GSSAcquireCredTest::testEmptyCall()
77 {
78   /* Variables */
79   GSSAcquireCred cmd = GSSAcquireCred(&mock_acquire_cred);
80   OM_uint32 minor;
81   GSSName steve((char *)"steve@local", (gss_OID)GSS_C_NT_USER_NAME);
82   GSSOID moonshotOID((char *)"{1 3 6 1 5 5 15 1 1 18}");
83   
84   /* Error checking */
85   /* Setup */
86   cmd.setDesiredName(steve);
87   cmd.setTimeReq(0);
88   cmd.addDesiredMech( moonshotOID );
89   cmd.setCredUsage(GSS_C_INITIATE);
90   
91   
92   MockAcquireCred::retVal = 0;
93   MockAcquireCred::minor_status = 0;
94   MockAcquireCred::output_cred_handle = GSS_C_NO_CREDENTIAL;
95   gss_create_empty_oid_set(&minor, &(MockAcquireCred::actual_mechs));
96   MockAcquireCred::time_rec = rand();
97   
98   cmd.execute();
99   
100   /* Main */
101   CPPUNIT_ASSERT_EQUAL_MESSAGE(
102     "The desired name was not passed in correctly",
103     steve.toGss(),
104     MockAcquireCred::desired_name
105   );
106   
107   CPPUNIT_ASSERT_EQUAL_MESSAGE(
108     "The time_req was not passed in correctly",
109     cmd.getTimeReq(),
110     MockAcquireCred::time_req
111   );
112   
113   CPPUNIT_ASSERT_EQUAL_MESSAGE(
114     "The desired mechs were not passed in correctly",
115     cmd.getDesiredMechs(),
116     MockAcquireCred::desired_mechs
117   );
118   
119   CPPUNIT_ASSERT_EQUAL_MESSAGE(
120     "The cred_usage was not passed in correctly",
121     cmd.getCredUsage(),
122     MockAcquireCred::cred_usage
123   );
124   
125   CPPUNIT_ASSERT_EQUAL_MESSAGE(
126     "The output credential handle was not passed in correctly",
127     MockAcquireCred::output_cred_handle,
128     cmd.getOutputCredHandle()
129   );
130   
131   CPPUNIT_ASSERT_EQUAL_MESSAGE(
132     "The actual mechanisms value was not passed in correctly",
133     MockAcquireCred::actual_mechs->count,
134     cmd.getActualMechs()->count
135   );
136   
137   CPPUNIT_ASSERT_EQUAL_MESSAGE(
138     "The time_rec value was not passed in correctly",
139     MockAcquireCred::time_rec,
140     cmd.getTimeRec()
141   );
142   
143   
144   /* Cleanup */
145   /* Return */
146 }
147
148 void GSSAcquireCredTest::testJSONMarshal()
149 {
150
151 }