77import com .skyflow .errors .ErrorCode ;
88import com .skyflow .errors .ErrorMessage ;
99import com .skyflow .errors .SkyflowException ;
10+ import com .skyflow .vault .controller .VaultController ;
1011import org .junit .Assert ;
1112import org .junit .BeforeClass ;
1213import org .junit .Test ;
1314
15+ import java .lang .reflect .Field ;
16+ import java .util .LinkedHashMap ;
17+
1418public class SkyflowTests {
1519 private static final String INVALID_EXCEPTION_THROWN = "Should not have thrown any exception" ;
1620 private static final String EXCEPTION_NOT_THROWN = "Should have thrown an exception" ;
@@ -89,4 +93,115 @@ public void testUpdatingValidVaultConfig() {
8993 Assert .fail (INVALID_EXCEPTION_THROWN );
9094 }
9195 }
92- }
96+
97+ @ Test
98+ public void testVaultWithoutConfigThrows () {
99+ try {
100+ Skyflow skyflow = Skyflow .builder ().build ();
101+ skyflow .vault ();
102+ Assert .fail (EXCEPTION_NOT_THROWN );
103+ } catch (SkyflowException e ) {
104+ Assert .assertEquals (ErrorCode .INVALID_INPUT .getCode (), e .getHttpCode ());
105+ Assert .assertEquals (ErrorMessage .VaultIdNotInConfigList .getMessage (), e .getMessage ());
106+ }
107+ }
108+
109+ @ Test
110+ public void testVaultNullControllerThrows () {
111+ try {
112+ VaultConfig config = new VaultConfig ();
113+ config .setVaultId (vaultID );
114+ config .setClusterId (clusterID );
115+ config .setEnv (Env .SANDBOX );
116+
117+ Skyflow skyflow = Skyflow .builder ().addVaultConfig (config ).build ();
118+
119+ Object builder = getField (skyflow , "builder" );
120+ @ SuppressWarnings ("unchecked" )
121+ LinkedHashMap <String , VaultController > clients =
122+ (LinkedHashMap <String , VaultController >) getField (builder , "vaultClientsMap" );
123+ clients .put (vaultID , null );
124+
125+ skyflow .vault ();
126+ Assert .fail (EXCEPTION_NOT_THROWN );
127+ } catch (SkyflowException e ) {
128+ Assert .assertEquals (ErrorCode .INVALID_INPUT .getCode (), e .getHttpCode ());
129+ Assert .assertEquals (ErrorMessage .VaultIdNotInConfigList .getMessage (), e .getMessage ());
130+ } catch (Exception e ) {
131+ Assert .fail ("Unexpected exception: " + e .getMessage ());
132+ }
133+ }
134+
135+ @ Test
136+ public void testVaultReturnsController () {
137+ try {
138+ VaultConfig config = new VaultConfig ();
139+ config .setVaultId (vaultID );
140+ config .setClusterId (clusterID );
141+ config .setEnv (Env .SANDBOX );
142+
143+ Skyflow skyflow = Skyflow .builder ().addVaultConfig (config ).build ();
144+ VaultController controller = skyflow .vault ();
145+ Assert .assertNotNull (controller );
146+ } catch (SkyflowException e ) {
147+ Assert .fail (INVALID_EXCEPTION_THROWN );
148+ }
149+ }
150+
151+ @ Test
152+ public void testAddSkyflowCredentialsClonesAndSets () {
153+ try {
154+ VaultConfig config = new VaultConfig ();
155+ config .setVaultId (vaultID );
156+ config .setClusterId (clusterID );
157+ config .setEnv (Env .SANDBOX );
158+
159+ Credentials creds = new Credentials ();
160+ creds .setToken (token );
161+
162+ Skyflow skyflow = Skyflow .builder ()
163+ .addVaultConfig (config )
164+ .addSkyflowCredentials (creds )
165+ .build ();
166+
167+ creds .setToken ("mutated" );
168+
169+ Object builder = getField (skyflow , "builder" );
170+ Credentials storedCreds = (Credentials ) getField (builder .getClass ().getSuperclass (), builder , "skyflowCredentials" );
171+
172+ Assert .assertEquals (token , storedCreds .getToken ());
173+ Assert .assertNotEquals (creds .getToken (), storedCreds .getToken ());
174+ } catch (Exception e ) {
175+ Assert .fail ("Unexpected exception: " + e .getMessage ());
176+ }
177+ }
178+
179+ @ Test
180+ public void testSetLogLevelReturnsBuilder () {
181+ try {
182+ Skyflow .SkyflowClientBuilder builder = Skyflow .builder ();
183+ Skyflow .SkyflowClientBuilder returned = builder .setLogLevel (LogLevel .INFO );
184+ Assert .assertSame (builder , returned );
185+
186+ VaultConfig config = new VaultConfig ();
187+ config .setVaultId (vaultID );
188+ config .setClusterId (clusterID );
189+ config .setEnv (Env .SANDBOX );
190+ returned .addVaultConfig (config ).build ();
191+ } catch (Exception e ) {
192+ Assert .fail ("Unexpected exception: " + e .getMessage ());
193+ }
194+ }
195+
196+ private Object getField (Object instance , String fieldName ) throws Exception {
197+ Field f = instance .getClass ().getDeclaredField (fieldName );
198+ f .setAccessible (true );
199+ return f .get (instance );
200+ }
201+
202+ private Object getField (Class <?> declaring , Object instance , String fieldName ) throws Exception {
203+ Field f = declaring .getDeclaredField (fieldName );
204+ f .setAccessible (true );
205+ return f .get (instance );
206+ }
207+ }
0 commit comments