de8ca3709d994623e1a22e39e4fde13b1725df13
[dcaegen2/services/sdk.git] /
1 /*
2  * ============LICENSE_START=======================================================
3  * DCAEGEN2-SERVICES-SDK
4  * ================================================================================
5  * Copyright (C) 2019 NOKIA Intellectual Property. All rights reserved.
6  * ================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ============LICENSE_END=========================================================
19  */
20
21 package org.onap.dcaegen2.services.sdk.rest.services.aai.client.api;
22
23 import static org.assertj.core.api.Assertions.assertThat;
24 import static org.onap.dcaegen2.services.sdk.rest.services.aai.client.api.Transaction.Action.PUT;
25
26 import com.google.gson.Gson;
27 import com.google.gson.JsonObject;
28 import java.io.BufferedReader;
29 import java.io.IOException;
30 import java.io.InputStreamReader;
31 import java.util.Objects;
32 import java.util.stream.Collectors;
33 import org.junit.jupiter.api.Test;
34
35 class TransactionsTest {
36
37     @Test
38     void shouldBuildTransactionRequest() throws IOException {
39         // given
40         JsonObject payload = new JsonObject();
41         payload.addProperty("link-name", "foo");
42
43         ImmutableTransactions transactions = ImmutableTransactions
44             .builder()
45             .addOperations(ImmutableTransaction.builder()
46                 .action(PUT)
47                 .uri("/network/logical-links/logical-link/foo")
48                 .body(payload)
49                 .build())
50             .build();
51
52         // when
53         Gson gson = new Gson().newBuilder().create();
54         String transaction = gson.toJson(transactions);
55
56         // then
57         String expectedJson = getJsonFromFile("transaction.json");
58         assertThat(transaction).isEqualToIgnoringWhitespace(expectedJson);
59     }
60
61     private String getJsonFromFile(String file) throws IOException {
62         try (BufferedReader br = new BufferedReader(new InputStreamReader(
63             Objects.requireNonNull(TransactionsTest.class.getClassLoader().getResourceAsStream(file))))) {
64             return br.lines().collect(Collectors.joining(System.lineSeparator()));
65         }
66     }
67 }