Merge "CPS Delta API: Update action for delta service"
[cps.git] / cps-service / src / test / groovy / org / onap / cps / utils / GsonSpec.groovy
1 /*
2  * ============LICENSE_START=======================================================
3  *  Copyright (C) 2022 Nordix Foundation
4  *  ================================================================================
5  *  Licensed under the Apache License, Version 2.0 (the "License");
6  *  you may not use this file except in compliance with the License.
7  *  You may obtain a copy of the License at
8  *
9  *        http://www.apache.org/licenses/LICENSE-2.0
10
11  *  Unless required by applicable law or agreed to in writing, software
12  *  distributed under the License is distributed on an "AS IS" BASIS,
13  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  *  See the License for the specific language governing permissions and
15  *  limitations under the License.
16  *
17  *  SPDX-License-Identifier: Apache-2.0
18  *  ============LICENSE_END=========================================================
19  */
20
21 package org.onap.cps.utils
22
23 import com.google.gson.stream.JsonReader
24 import org.onap.cps.TestUtils
25 import spock.lang.Specification
26
27 class GsonSpec extends Specification {
28
29     def 'Iterate over JSON data with gson JsonReader'() {
30         given: 'json data with two objects and JSON reader'
31             def jsonData = TestUtils.getResourceFileContent('multiple-object-data.json')
32             def objectUnderTest = new JsonReader(new StringReader(jsonData));
33         when: 'data is iterated over with JsonReader methods'
34             iterateWithJsonReader(objectUnderTest)
35         then: 'no exception is thrown'
36             noExceptionThrown()
37     }
38
39     def iterateWithJsonReader(JsonReader jsonReader) {
40         switch(jsonReader.peek()) {
41             case "STRING":
42                 print(jsonReader.nextString() + " ")
43                 break;
44             case "BEGIN_OBJECT":
45                 jsonReader.beginObject();
46                 while (jsonReader.hasNext()) {
47                     print(jsonReader.nextName() + " ")
48                     iterateWithJsonReader(jsonReader)
49                 }
50                 jsonReader.endObject();
51                 println("")
52                 break;
53             default:
54                 break;
55         }
56     }
57
58 }