2525import java .util .stream .Stream ;
2626
2727import static io .restassured .RestAssured .given ;
28+ import static org .finos .calm .resources .ResourceValidationConstants .NAMESPACE_MESSAGE ;
29+ import static org .finos .calm .resources .ResourceValidationConstants .VERSION_MESSAGE ;
2830import static org .hamcrest .Matchers .containsString ;
2931import static org .hamcrest .Matchers .equalTo ;
3032import static org .mockito .ArgumentMatchers .anyString ;
@@ -49,7 +51,7 @@ void beforeEach() {
4951 }
5052
5153 @ Test
52- void return_a_404_when_an_invalid_namespace_is_provided_on_get_standards () throws NamespaceNotFoundException {
54+ void return_a_404_when_a_namespace_is_provided_that_does_not_exist_on_get_standards () throws NamespaceNotFoundException {
5355 when (mockStandardStore .getStandardsForNamespace (anyString ())).thenThrow (new NamespaceNotFoundException ());
5456
5557 given ()
@@ -61,6 +63,16 @@ void return_a_404_when_an_invalid_namespace_is_provided_on_get_standards() throw
6163 verify (mockStandardStore ).getStandardsForNamespace ("invalid" );
6264 }
6365
66+ @ Test
67+ void return_a_400_when_an_invalid_namespace_is_provided_on_get_standards () {
68+ given ()
69+ .when ()
70+ .get ("/calm/namespaces/$$$$$/standards" )
71+ .then ()
72+ .statusCode (400 )
73+ .body (containsString (NAMESPACE_MESSAGE ));
74+ }
75+
6476 @ Test
6577 void return_list_of_standards_response_when_valid_namespace_provided_on_get_standards () throws NamespaceNotFoundException , JsonProcessingException {
6678 List <NamespaceStandardSummary > expectedStandardSummary = List .of (this .nistStandardSummary , this .finosStandardSummary );
@@ -81,7 +93,7 @@ void return_list_of_standards_response_when_valid_namespace_provided_on_get_stan
8193 }
8294
8395 @ Test
84- void return_a_404_when_invalid_namespace_is_provided_on_create_standards () throws NamespaceNotFoundException , JsonProcessingException {
96+ void return_a_404_when_namespace_is_provided_that_does_not_exist_on_create_standards () throws NamespaceNotFoundException , JsonProcessingException {
8597 when (mockStandardStore .createStandardForNamespace (any (CreateStandardRequest .class ), eq ("invalid" ))).thenThrow (new NamespaceNotFoundException ());
8698 CreateStandardRequest createStandardRequest = new CreateStandardRequest ();
8799 createStandardRequest .setName ("nist" );
@@ -99,6 +111,23 @@ void return_a_404_when_invalid_namespace_is_provided_on_create_standards() throw
99111 verify (mockStandardStore ).createStandardForNamespace (createStandardRequest , "invalid" );
100112 }
101113
114+ @ Test
115+ void return_a_400_when_invalid_namespace_is_provided_on_create_standards () throws JsonProcessingException {
116+ CreateStandardRequest createStandardRequest = new CreateStandardRequest ();
117+ createStandardRequest .setName ("nist" );
118+ createStandardRequest .setDescription ("NIST Standard" );
119+ createStandardRequest .setStandardJson ("{}" );
120+
121+ given ()
122+ .header ("Content-Type" , "application/json" )
123+ .body (objectMapper .writeValueAsString (createStandardRequest ))
124+ .when ()
125+ .post ("/calm/namespaces/$$$$$/standards" )
126+ .then ()
127+ .statusCode (400 )
128+ .body (containsString (NAMESPACE_MESSAGE ));
129+ }
130+
102131 @ Test
103132 void return_a_created_status_code_with_location_of_standard_when_creating_a_standard () throws NamespaceNotFoundException , JsonProcessingException {
104133 Standard storedNist = new Standard ("nist" , "NIST Standard" , "{ \" test\" : \" json\" }" , 5 , "1.0.0" );
@@ -120,6 +149,16 @@ void return_a_created_status_code_with_location_of_standard_when_creating_a_stan
120149 verify (mockStandardStore ).createStandardForNamespace (createStandardRequest , "valid" );
121150 }
122151
152+ @ Test
153+ void return_400_when_invalid_namespace_provided_when_getting_versions_of_standard () {
154+ given ()
155+ .when ()
156+ .get ("/calm/namespaces/$$$$$/standards/5/versions" )
157+ .then ()
158+ .statusCode (400 )
159+ .body (containsString (NAMESPACE_MESSAGE ));
160+ }
161+
123162 static Stream <Arguments > provideParametersForStandardVersionTests () {
124163 return Stream .of (
125164 Arguments .of ("invalid" , new NamespaceNotFoundException (), 404 , "Invalid namespace provided" ),
@@ -157,6 +196,26 @@ void respond_correctly_to_get_standard_versions_query(String namespace, Throwabl
157196 verify (mockStandardStore ).getStandardVersions (namespace , 5 );
158197 }
159198
199+ @ Test
200+ void return_400_when_invalid_namespace_provided_when_getting_version_of_standard () {
201+ given ()
202+ .when ()
203+ .get ("/calm/namespaces/$$$$/standards/5/versions/1.0.0" )
204+ .then ()
205+ .statusCode (400 )
206+ .body (containsString (NAMESPACE_MESSAGE ));
207+ }
208+
209+ @ Test
210+ void return_400_when_invalid_version_provided_when_getting_version_of_standard () {
211+ given ()
212+ .when ()
213+ .get ("/calm/namespaces/finos/standards/5/versions/invalid_version" )
214+ .then ()
215+ .statusCode (400 )
216+ .body (containsString (VERSION_MESSAGE ));
217+ }
218+
160219 static Stream <Arguments > provideParametersForGetStandardTests () {
161220 return Stream .of (
162221 Arguments .of ("invalid" , new NamespaceNotFoundException (), 404 ),
@@ -197,6 +256,40 @@ void respond_to_get_standard_for_a_specific_version_correctly(String namespace,
197256 }
198257 }
199258
259+ @ Test
260+ void return_400_when_invalid_namespace_provided_when_creating_new_version_of_standard () {
261+ CreateStandardRequest createStandardRequest = new CreateStandardRequest ();
262+ createStandardRequest .setName ("amazing-standard" );
263+ createStandardRequest .setDescription ("An amazing standard" );
264+ createStandardRequest .setStandardJson ("{}" );
265+
266+ given ()
267+ .header ("Content-Type" , "application/json" )
268+ .body (createStandardRequest )
269+ .when ()
270+ .post ("/calm/namespaces/$$$$/standards/5/versions/1.0.1" )
271+ .then ()
272+ .statusCode (400 )
273+ .body (containsString (NAMESPACE_MESSAGE ));
274+ }
275+
276+ @ Test
277+ void return_400_when_invalid_version_provided_when_creating_new_version_of_standard () {
278+ CreateStandardRequest createStandardRequest = new CreateStandardRequest ();
279+ createStandardRequest .setName ("amazing-standard" );
280+ createStandardRequest .setDescription ("An amazing standard" );
281+ createStandardRequest .setStandardJson ("{}" );
282+
283+ given ()
284+ .header ("Content-Type" , "application/json" )
285+ .body (createStandardRequest )
286+ .when ()
287+ .post ("/calm/namespaces/finos/standards/5/versions/invalid-version" )
288+ .then ()
289+ .statusCode (400 )
290+ .body (containsString (VERSION_MESSAGE ));
291+ }
292+
200293 static Stream <Arguments > provideParametersForCreateStandardTests () {
201294 return Stream .of (
202295 Arguments .of ("invalid" , new NamespaceNotFoundException (), 404 ),
0 commit comments