5d0c666405432e13d5120744ee41d2257371da25
[ric-plt/resource-status-manager.git] / RSM / controllers / controller_test.go
1 //
2 // Copyright 2019 AT&T Intellectual Property
3 // Copyright 2019 Nokia
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
18 package controllers
19
20 /*
21 import (
22         "encoding/json"
23         "fmt"
24         "github.com/stretchr/testify/assert"
25         "io"
26         "io/ioutil"
27         "net/http"
28         "net/http/httptest"
29         "rsm/configuration"
30         "rsm/mocks"
31         "rsm/models"
32         "rsm/providers/httpmsghandlerprovider"
33         "rsm/rsmerrors"
34         "rsm/tests/testhelper"
35         "testing"
36 )
37
38 func setupControllerTest(t *testing.T) (*Controller, *mocks.RnibReaderMock, *mocks.RmrMessengerMock) {
39         config := configuration.ParseConfiguration()
40
41         rmrMessengerMock := &mocks.RmrMessengerMock{}
42         readerMock := &mocks.RnibReaderMock{}
43         rnibDataService, rmrSender, log := testhelper.InitTestCase(t)
44         handlerProvider := httpmsghandlerprovider.NewRequestHandlerProvider(log, rmrSender, config, rnibDataService)
45         controller := NewController(log, handlerProvider)
46         return controller, readerMock, rmrMessengerMock
47 }
48
49 func TestHeaderValidationFailed(t *testing.T) {
50         controller, _, _ := setupControllerTest(t)
51
52         writer := httptest.NewRecorder()
53         header := &http.Header{}
54         controller.handleRequest(writer, header, "", nil, true)
55         var errorResponse = parseJsonRequest(t, writer.Body)
56         err := rsmerrors.NewHeaderValidationError()
57
58         assert.Equal(t, http.StatusUnsupportedMediaType, writer.Result().StatusCode)
59         assert.Equal(t, errorResponse.Code, err.Code)
60         assert.Equal(t, errorResponse.Message, err.Message)
61 }
62 */
63 /*func TestHandleInternalError(t *testing.T) {
64         controller, _, _ := setupControllerTest(t)
65
66         writer := httptest.NewRecorder()
67         err := rsmerrors.NewInternalError()
68
69         controller.handleErrorResponse(err, writer)
70         var errorResponse = parseJsonRequest(t, writer.Body)
71
72         assert.Equal(t, http.StatusInternalServerError, writer.Result().StatusCode)
73         assert.Equal(t, errorResponse.Code, err.Code)
74         assert.Equal(t, errorResponse.Message, err.Message)
75 }*/
76
77 /*func TestValidateHeadersSuccess(t *testing.T) {
78         controller, _, _ := setupControllerTest(t)
79
80         header := http.Header{}
81         header.Set("Content-Type", "application/json")
82         result := controller.validateRequestHeader(&header)
83
84         assert.Nil(t, result)
85 }
86 */
87 /*func parseJsonRequest(t *testing.T, r io.Reader) models.ErrorResponse {
88
89         var errorResponse models.ErrorResponse
90         body, err := ioutil.ReadAll(r)
91         if err != nil {
92                 t.Errorf("Error cannot deserialize json request")
93         }
94         json.Unmarshal(body, &errorResponse)
95
96         return errorResponse
97 }*/
98 /*
99 func TestHandleErrorResponse(t *testing.T) {
100         controller, _, _ := setupControllerTest(t)
101
102         writer := httptest.NewRecorder()
103         controller.handleErrorResponse(rsmerrors.NewRnibDbError(), writer)
104         assert.Equal(t, http.StatusInternalServerError, writer.Result().StatusCode)
105
106         writer = httptest.NewRecorder()
107         controller.handleErrorResponse(rsmerrors.NewHeaderValidationError(), writer)
108         assert.Equal(t, http.StatusUnsupportedMediaType, writer.Result().StatusCode)
109
110         writer = httptest.NewRecorder()
111         controller.handleErrorResponse(rsmerrors.NewWrongStateError("", ""), writer)
112         assert.Equal(t, http.StatusBadRequest, writer.Result().StatusCode)
113
114         writer = httptest.NewRecorder()
115         controller.handleErrorResponse(rsmerrors.NewRequestValidationError(), writer)
116         assert.Equal(t, http.StatusBadRequest, writer.Result().StatusCode)
117
118         writer = httptest.NewRecorder()
119         controller.handleErrorResponse(rsmerrors.NewRmrError(), writer)
120         assert.Equal(t, http.StatusInternalServerError, writer.Result().StatusCode)
121
122         writer = httptest.NewRecorder()
123         controller.handleErrorResponse(rsmerrors.NewResourceNotFoundError(), writer)
124         assert.Equal(t, http.StatusNotFound, writer.Result().StatusCode)
125
126         writer = httptest.NewRecorder()
127         controller.handleErrorResponse(rsmerrors.NewInvalidJsonError(), writer)
128         assert.Equal(t, http.StatusBadRequest, writer.Result().StatusCode)
129
130         writer = httptest.NewRecorder()
131         controller.handleErrorResponse(fmt.Errorf("ErrorError"), writer)
132         assert.Equal(t, http.StatusInternalServerError, writer.Result().StatusCode)
133 }
134 */