1414 */
1515package org .jnosql .diana .mongodb .document ;
1616
17- import static org .junit .jupiter .api .Assertions .*;
17+ import com .mongodb .AuthenticationMechanism ;
18+ import com .mongodb .MongoCredential ;
19+ import org .jnosql .diana .api .JNoSQLException ;
20+ import org .jnosql .diana .api .Settings ;
21+ import org .junit .jupiter .api .Test ;
22+
23+ import java .util .Arrays ;
24+ import java .util .List ;
25+
26+ import static com .mongodb .AuthenticationMechanism .GSSAPI ;
27+ import static com .mongodb .AuthenticationMechanism .PLAIN ;
28+ import static com .mongodb .AuthenticationMechanism .SCRAM_SHA_1 ;
29+ import static com .mongodb .AuthenticationMechanism .SCRAM_SHA_256 ;
30+ import static org .jnosql .diana .mongodb .document .MongoDBDocumentConfigurations .AUTHENTICATION_SOURCE ;
31+ import static org .jnosql .diana .mongodb .document .MongoDBDocumentConfigurations .PASSWORD ;
32+ import static org .jnosql .diana .mongodb .document .MongoDBDocumentConfigurations .USER ;
33+ import static org .jnosql .diana .mongodb .document .MongoDBDocumentConfigurations .AUTHENTICATION_MECHANISM ;
34+ import static org .junit .jupiter .api .Assertions .assertEquals ;
35+ import static org .junit .jupiter .api .Assertions .assertThrows ;
36+ import static org .junit .jupiter .api .Assertions .assertTrue ;
1837
1938class MongoAuthenticationTest {
20- //deve criar um para cada tipo
39+
40+ //deve criar um para cada tipo
2141 //deve retornar erro quando os authen forem diferentes
2242 //deve retorna quando tiver um de cada
2343 //deve retornar quando tiver
44+ //quando for default
45+
46+ @ Test
47+ public void shouldReturnErrorWhenTheNumberParameterIsInvalid () {
48+ Settings settings = Settings .builder ().put (AUTHENTICATION_SOURCE .get (), "value" )
49+ .build ();
50+
51+ assertThrows (JNoSQLException .class , () -> MongoAuthentication .of (settings ));
52+
53+ }
54+
55+ @ Test
56+ public void shouldReturnOneAuthentication () {
57+ Settings settings = Settings .builder ()
58+ .put (AUTHENTICATION_SOURCE .get (), "database" )
59+ .put (PASSWORD .get (), "password" )
60+ .put (USER .get (), "user" )
61+ .build ();
62+
63+ List <MongoCredential > credentials = MongoAuthentication .of (settings );
64+ assertEquals (1 , credentials .size ());
65+ MongoCredential credential = credentials .get (0 );
66+ assertEquals ("database" , credential .getSource ());
67+ assertTrue (Arrays .equals ("password" .toCharArray (), credential .getPassword ()));
68+ assertEquals ("user" , credential .getUserName ());
69+ assertEquals (PLAIN .getMechanismName (), credential .getMechanism ());
70+
71+ }
72+
73+ @ Test
74+ public void shouldReturnOneAuthenticationWithGSSAPI () {
75+ Settings settings = Settings .builder ()
76+ .put (AUTHENTICATION_SOURCE .get (), "database" )
77+ .put (PASSWORD .get (), "password" )
78+ .put (USER .get (), "user" )
79+ .put (AUTHENTICATION_MECHANISM .get (), "GSSAPI" )
80+ .build ();
81+
82+ List <MongoCredential > credentials = MongoAuthentication .of (settings );
83+ assertEquals (1 , credentials .size ());
84+ MongoCredential credential = credentials .get (0 );
85+ assertEquals ("$external" , credential .getSource ());
86+ assertEquals ("user" , credential .getUserName ());
87+ assertEquals (GSSAPI .getMechanismName (), credential .getMechanism ());
88+
89+ }
90+
91+ @ Test
92+ public void shouldReturnOneAuthenticationWithMongoX509 () {
93+ Settings settings = Settings .builder ()
94+ .put (AUTHENTICATION_SOURCE .get (), "database" )
95+ .put (PASSWORD .get (), "password" )
96+ .put (USER .get (), "user" )
97+ .put (AUTHENTICATION_MECHANISM .get (), "MONGODB-X509" )
98+ .build ();
99+
100+ List <MongoCredential > credentials = MongoAuthentication .of (settings );
101+ assertEquals (1 , credentials .size ());
102+ MongoCredential credential = credentials .get (0 );
103+ assertEquals ("$external" , credential .getSource ());
104+ assertEquals ("user" , credential .getUserName ());
105+ assertEquals (AuthenticationMechanism .MONGODB_X509 .getMechanismName (), credential .getMechanism ());
106+ }
107+
108+ @ Test
109+ public void shouldReturnOneAuthenticationWithSCRAMSHA1 () {
110+ Settings settings = Settings .builder ()
111+ .put (AUTHENTICATION_SOURCE .get (), "database" )
112+ .put (PASSWORD .get (), "password" )
113+ .put (USER .get (), "user" )
114+ .put (AUTHENTICATION_MECHANISM .get (), "SCRAM-SHA-1" )
115+ .build ();
116+
117+ List <MongoCredential > credentials = MongoAuthentication .of (settings );
118+ assertEquals (1 , credentials .size ());
119+ MongoCredential credential = credentials .get (0 );
120+ assertEquals ("database" , credential .getSource ());
121+ assertTrue (Arrays .equals ("password" .toCharArray (), credential .getPassword ()));
122+ assertEquals ("user" , credential .getUserName ());
123+ assertEquals (SCRAM_SHA_1 .getMechanismName (), credential .getMechanism ());
124+ }
125+
126+ @ Test
127+ public void shouldReturnOneAuthenticationWithSCRAMSHA256 () {
128+ Settings settings = Settings .builder ()
129+ .put (AUTHENTICATION_SOURCE .get (), "database" )
130+ .put (PASSWORD .get (), "password" )
131+ .put (USER .get (), "user" )
132+ .put (AUTHENTICATION_MECHANISM .get (), "SCRAM-SHA-256" )
133+ .build ();
134+
135+ List <MongoCredential > credentials = MongoAuthentication .of (settings );
136+ assertEquals (1 , credentials .size ());
137+ MongoCredential credential = credentials .get (0 );
138+ assertEquals ("database" , credential .getSource ());
139+ assertTrue (Arrays .equals ("password" .toCharArray (), credential .getPassword ()));
140+ assertEquals ("user" , credential .getUserName ());
141+ assertEquals (SCRAM_SHA_256 .getMechanismName (), credential .getMechanism ());
142+ }
143+
144+ @ Test
145+ public void shouldReturnAuthentications () {
146+ Settings settings = Settings .builder ()
147+ .put (AUTHENTICATION_SOURCE .get ()+".1" , "database" )
148+ .put (PASSWORD .get ()+".1" , "password" )
149+ .put (USER .get ()+".1" , "user" )
150+ .put (AUTHENTICATION_SOURCE .get ()+".2" , "database-2" )
151+ .put (PASSWORD .get ()+".2" , "password-2" )
152+ .put (USER .get ()+".2" , "user-2" )
153+ .build ();
154+
155+ List <MongoCredential > credentials = MongoAuthentication .of (settings );
156+ assertEquals (2 , credentials .size ());
157+ MongoCredential credential = credentials .get (0 );
158+ assertEquals ("database" , credential .getSource ());
159+ assertTrue (Arrays .equals ("password" .toCharArray (), credential .getPassword ()));
160+ assertEquals ("user" , credential .getUserName ());
161+ assertEquals (PLAIN .getMechanismName (), credential .getMechanism ());
162+
163+ credential = credentials .get (1 );
164+ assertEquals ("database-2" , credential .getSource ());
165+ assertTrue (Arrays .equals ("password-2" .toCharArray (), credential .getPassword ()));
166+ assertEquals ("user-2" , credential .getUserName ());
167+ assertEquals (PLAIN .getMechanismName (), credential .getMechanism ());
168+
169+ }
24170}
0 commit comments